SOAP Web services running on WildFly or JBoss EAP 7 can customize the deployment port of the Web service by setting the wsdl-port or wsdl-secure-port of the webservices subsystem.
Let’s see an example:
/subsystem=webservices:write-attribute(name=wsdl-port,value=8090)
Now deploy a sample Web service and check the Web Service WSDL URL:
/deployment=jaxws-pojo-service.war/subsystem=webservices/endpoint=jaxws-pojo-endpoint%3Aorg.jboss.quickstarts.ws.jaxws.samples.jsr181pojo.JSEBean:read-resource(include-runtime=true) { "outcome" => "success", "result" => { "average-processing-time" => 0L, "class" => "org.jboss.quickstarts.ws.jaxws.samples.jsr181pojo.JSEBean", "context" => "jaxws-pojo-endpoint", "fault-count" => 0L, "max-processing-time" => 0L, "min-processing-time" => 0L, "name" => "org.jboss.quickstarts.ws.jaxws.samples.jsr181pojo.JSEBean", "request-count" => 0L, "response-count" => 0L, "total-processing-time" => 0L, "type" => "JAXWS_JSE", "wsdl-url" => "http://localhost:8090/jaxws-pojo-endpoint/JSEBean?wsdl" } }
As you can see, the WSDL URL has been configured to run on Port 8090.
Here is the updated configuration for your reference:
<subsystem xmlns="urn:jboss:domain:webservices:2.0" statistics-enabled="${wildfly.webservices.statistics-enabled:${wildfly.statistics-enabled:false}}"> <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host> <wsdl-port>8090</wsdl-port> <endpoint-config name="Standard-Endpoint-Config"/> <endpoint-config name="Recording-Endpoint-Config"> <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"> <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/> </pre-handler-chain> </endpoint-config> <client-config name="Standard-Client-Config"/> </subsystem>
Finally, note that you need to open the WSDL Port in the socket-binding configuration and register it on undertow server.
If you want to run a single HTTP listener in your undertow Web server it is sufficient to change the socket binding of the http listener to “8090” (in our example).
On the other hand, if you want to use multiple HTTP listeners (for example one dedicated to your WSDL Port), we recommend checking this tutorial: How to run multiple HTTP Ports in JBoss / Wildfly
JBoss AS 4 and 5
Basically you need to change port information in 3 configuration files:
At first modify server.xml (With JBoss 4.2.X it’s under deploy/jboss-web.deployer)
<Connector port=”8080” address=”${jboss.bind.address}”
maxThreads=”250″ maxHttpHeaderSize=”8192″
emptySessionPath=”true” protocol=”HTTP/1.1″
enableLookups=”false” redirectPort=”8443″ acceptCount=”100″
connectionTimeout=”20000″ disableUploadTimeout=”true” />
Next modify jboss-service.xml (under deploy/http-invoker.sar/META-INF/jboss-service.xml )
Modify all attributes named “InvokerURLSuffix” :
<attribute name=”InvokerURLSuffix”>:8080/invoker/EJBInvokerServlet</attribute>
<attribute name=”InvokerURLSuffix”>:8080/invoker/JMXInvokerServlet</attribute>
<attribute name=”InvokerURLSuffix”>:8080/invoker/readonly/JMXInvokerServlet</attribute>Finally check the jboss-beans.xml (under deploy/jbossws.sar/jbossws.beans/META-INF)
<property name=”webServicePort”>8080</property>