Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-2606

Need ability to force fixed name for import location within generated WSDL

    XMLWordPrintable

Details

    Description

      The common deployment environment in many organizations are

      client -> load balancer -> x nodes of Apache web server + mod_jk -> y nodes of JBoss application server

      When bottom-up approach for the web service is used, the JBoss applicaiton server generates the WSDL for the webservice. Here is example of such generated WSDL

      • <definitions name="COPSWebService" targetNamespace="http://impl.service.ws.cops.bankofamerica.com/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://service.ws.cops.bankofamerica.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.service.ws.cops.bankofamerica.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <import location="https://bigip.test.address:123/copsws/webservices/logcopseventV001?wsdl&resource=ICOPSSOAPWebService_PortType835.wsdl" namespace="http://service.ws.cops.bankofamerica.com/" />
      • <service name="COPSWebService">
      • <port binding="ns1:ICOPSSOAPWebServiceBinding" name="COPSWebServicePort">
        <soap:address location="https://bigip.test.address:123/copsws/webservices/logcopseventV001" />
        </port>
        </service>
        </definitions>

      Notice that the import location

      <import location="https://bigip.test.address:123/copsws/webservices/logcopseventV001?wsdl&resource=ICOPSSOAPWebService_PortType835.wsdl" namespace="http://service.ws.cops.bankofamerica.com/" />

      contains temporary name of the resource ICOPSSOAPWebService_PortType835.wsdl which is temporary file with the numberic portion 835 randomly generated during deployment. This portion of the WSDL will be different on each of the JBoss application server. If the load balancer doesn't use persistant load balancing and each request can be handled by any JBoss applicaiton server than the client may fail to loac the WSDL successfully. Here is the scenario

      1. JBoss node 1 generated during deployment import location as
      <import location="https://bigip.test.address:123/copsws/webservices/logcopseventV001?wsdl&resource=ICOPSSOAPWebService_PortType835.wsdl" namespace="http://service.ws.cops.bankofamerica.com/" />
      2. JBoss node 2 generated during deployment import location as
      <import location="https://bigip.test.address:123/copsws/webservices/logcopseventV001?wsdl&resource=ICOPSSOAPWebService_PortType123.wsdl" namespace="http://service.ws.cops.bankofamerica.com/" />
      3. Client sends request to load WSDL. Load balancer load balances this request to node #1. Client sees
      <import location="https://bigip.test.address:123/copsws/webservices/logcopseventV001?wsdl&resource=ICOPSSOAPWebService_PortType835.wsdl" namespace="http://service.ws.cops.bankofamerica.com/" />
      4. Client sends request to load the document referred in import location
      https://bigip.test.address:123/copsws/webservices/logcopseventV001?wsdl&resource=ICOPSSOAPWebService_PortType835.wsdl"
      The load balancer sends the request to be handled by JBoss node #2. The request will fail because this resource doesn't exist on that node.

      This demonstrates that is it not currently possible to create truly stateles environment where any request can be handled by any jboss node when JBoss generates the WSDL.

      Two possiblities for fixes are use jboss-beans.xml to specify new property

      <property name="wsdlmportLocationPostix">some_string</property>

      or to allow specifiy property to do not use the import location and rather embed that portion of the WSDL inside of the WSDL

      <property name="useImportLocation">true|false</property>

      Attachments

        Activity

          People

            darran.lofthouse@redhat.com Darran Lofthouse
            miroslavhalas_jira Miroslav Halas (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: