How to change the default Web Service deployment Port ?
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)
On the other hand, if you want to modify the WSDL Secure Port, you can use the following CLI Command:
/subsystem=webservices:write-attribute(name=wsdl-secure-port,value=8453)
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
Changing Web Services Port using the Web Console
Another option is to use the Web Admin Console. Connect to it (default address is http://localhost:9990) and select Web Services in the subsystem Configuration.
From there, click on View and Edit the Configuration:
From there, you can change the WSDL Port attribute or the WSDL Secure Port Attribute.
Changing SOAP Port in JBoss AS 4 and 5
If you are running an older version of JBoss, then you will 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>
Conclusion
In conclusion, mastering the art of configuring the default Web Service deployment port is a crucial skill for developers working with SOAP Web services on WildFly or JBoss EAP 7. By delving into the configuration settings of the webservices subsystem and manipulating the wsdl-port or wsdl-secure-port, developers gain the power to customize the deployment port according to their specific requirements.
Recommended Articles
Discover SOAP Web Service WSDL URL with JBoss EAP/WildFly: An In-Depth Guide
Learn how to find and test your SOAP Web Service using JBoss EAP or WildFly. Includes CLI and console methods.
Deploying SOAP Web Services in Jakarta EE Applications: A Step-by-Step Guide
Learn how to build and deploy SOAP-based web services in Jakarta EE applications, including guidance on the changes in Java SE that removed the JAX-WS API.
Test SOAP Web Services with Open Source Tools and Java Testing Frameworks
Learn how to test SOAP Web Services using open source testing tools like SOAP UI and Java testing frameworks. Get started with WildFly and Keycloak for your web service.
Disable JAX-WS SOAP Web Services on WildFly Application Server - Comprehensive Guide
Learn how to disable JAX-WS SOAP Web Services at both application and subsystem levels in WildFly. #WildFly #Java #Middleware