JBOSS uses the request to determine which url it should use, when dynamically generating the wsdl.

Depending on your production layout, it can choose the “wrong” ip/domain name. This can happen, if you have your JBOSS behind another http server.

You can however tell the container to use a predefined setting.

The following file (for JBOSS 5.1) needs to be edited: server/{instance}/deployers/jbossws.deployer/META-INF/jboss-beans.xml :

<bean name="WSServerConfig" class="org.jboss.wsf.stack.jbws.NativeServerConfig">
    <property name="mbeanServer"><inject bean="WSMBeanServerLocator" property="mbeanServer"/></property>
 
    <!--
      The WSDL, that is a required deployment artifact for an endpoint, has a <soap:address>
      element which points to the location of the endpoint. JBoss supports rewriting of that SOAP address.
 
      If the content of <soap:address> is a valid URL, JBossWS will not rewrite it unless 'modifySOAPAddress' is true.
      If the content of <soap:address> is not a valid URL, JBossWS will rewrite it using the attribute values given below.
 
      If 'webServiceHost' is not set, JBossWS uses requesters protocol host when rewriting the <soap:address>.
    -->
    <property name="webServiceHost">${jboss.bind.address}</property>
    <property name="modifySOAPAddress">true</property>
 
    <!--
      Set these properties to explicitly define the ports that will be used for rewriting the SOAP address.
      Otherwise the ports will be identified by querying the list of installed connectors. 
      If multiple connectors are found the port of the first connector is used.
      <property name="webServiceSecurePort">8443</property>
      <property name="webServicePort">8080</property>
    -->
  </bean>

Replace ${jboss.bind.address} with the desired entry.

Another alternative: Include a existing wsdl in your deployment and deactivate modifySOAPAddress. JBOSS will not alter the existing wsdl.