Version 11

    How does rewriting of the soap address in wsdl work?

     

    Have a look at jbossws.sar/jbossws.beans/META-INF/jboss-beans.xml

     

        <bean name="ServiceEndpointManager" class="org.jboss.ws.server.ServiceEndpointManager">
          <!--
            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 AlwaysModifySOAPAddress is true.
            If the content of <soap:address> is not a valid URL, JBossWS will rewrite it using the attribute values given below.
          -->
          <property name="webServiceHost">${jboss.bind.address}</property>
          <property name="webServiceSecurePort">8443</property>
          <property name="webServicePort">8080</property>
          <property name="alwaysModifySOAPAddress">true</property>
          ...
        </bean>
    

     

    If instead of a folder 'jbossws.sar/META-INF/jbossws.beans' you have a file you will need to extract the 'jbossws.beans' (It is just a normal archive) and convert it into an exploded deployment.

     

    Instead of hardcoding the correct <soap:address> in the WSDL on the client side, you can use jboss-client.xml to point to the server side generated WSDL

     

       <jboss-client>
         <jndi-name>jbossws-client</jndi-name>
         <service-ref>
           <service-ref-name>service/TestServiceJSE</service-ref-name>
           <wsdl-override>http://somehost:8080/jbossws-samples-jsr109pojo-rpc?wsdl</wsdl-override>
         </service-ref>
       </jboss-client>
    

     

    This of course has the disadvantage that the client has to do an HTTP GET when the Service is constructed.

     

    -


    Referenced by: