1 Reply Latest reply on Aug 18, 2010 1:08 AM by Magesh Bojan

    Exposing webservice on ESB using SoapProcessor - wrong soap:address

    Mikael Jørgensen Newbie

      Hi,

       

      I'm building up some action pipelines in JBoss ESB.

       

      The first action is a webservice, exposed by the SoapProcessor - and the idea is to let the action pipeline be triggered by an invokation of the webservice, and then to have the next actions perform various tasks based on the content of the provided Message.

       

      It seems as if there are two ways of getting the WSDL for the webservice

       

      The first is the one generated by the ESB and and the latter is (if understood correctly) the one generated by JBossWS.

       

      If I use the latter one, then when I invoke the webservice, the Message gotten from SOAPProcessor.getMessage() is null, and if I understood it correctly, I need to use the first WSDL that refers to the specific port that was defined for the JBR provider that my service listens to.

       

      So all this works fine when running it all locally - i.e. I have a webservice client that uses the WSDL obrtained from http://host:8080/contract/... to invoke the webservice.

       

      But, if I deploy the ESB/action pipeline on a remote server it breaks.

       

      I expect that the cause of the problem is, that the WSDL returned from http://host:8080/contract/...contains a soap:address looking like:

      <soap:address location="http://localhost:8770/"/>

      and this address does not make sense when the webservice is deployed on a remote host.

      It looks like the soap:address of the WSDL just contains the string from the host attribute in the JBR provider definition from the jboss-esb.xml.

       

      Is this how it is supposed to be?

      If it is, how am I supposed to deploy the ESB stuff remotely - I't can't be that I need to alter the host attribute of the JBR provided to match the hostname of the machine it is deployed to.

       

      If this is not how it is supposed to be - how do I get hold on the proper WSDL which points to the proper host and port.

       

      (Or am I doing this entirely wrong ....?)

       

      Regards

      Mikael