7 Replies Latest reply on Jul 8, 2010 10:59 AM by David Ward

    SOAP Proxy deployment issue

    Kapil Jain Newbie

      Hi All,

       

      While using SOAP proxy for mirroring the external WSDL, I am getting deployment error. I am using Quickstart_webservice_proxy_basic_ws example and just changed the WSDL URL. I have not changed anything in deployment.xml and wsbarrier-service.xml from Sample. Any suggession!!!

       

      DEPLOYMENTS MISSING DEPENDENCIES:

      Deployment "jboss.esb.vfszip:/C:/JBoss/jboss-soa-p.5.0.0/jboss-as/server/default/deploy/ABCService.esb/" is missing the following dependencies:

      Dependency "<UNKNOWN jboss.esb.vfszip:/C:/JBoss/jboss-soa-p.5.0.0/jboss-as/server/default/deploy/ABCService.esb/>" (should be in state "PreInstall", but is actually in state "** UNRESOLVED Demands 'jboss.ws:context=Quickstart_webservice_proxy_basic_ws,endpoint=HelloWorldWS.Barrier' **")

       

      DEPLOYMENTS IN ERROR:

      Deployment "<UNKNOWN jboss.esb.vfszip:/C:/JBoss/jboss-soa-p.5.0.0/jboss-as/server/default/deploy/ABCService.esb/>" is in error due to the following reason(s): ** UNRESOLVED Demands 'jboss.ws:context=Quickstart_webservice_proxy_basic_ws,endpoint=HelloWorldWS.Barrier' **

       

      Thanks,

      Kapil

        • 1. Re: SOAP Proxy deployment issue
          asif ali Newbie

          UNRESOLVED Demands  'jboss.ws:context=Quickstart_webservice_proxy_basic_ws,endpoint=HelloWorldWS.Barrier

           

          Kapil,

           

          Looks like you have not deployed HelloWorldWS webservice. Make sure its up and running.

           

          asif

          • 2. Re: SOAP Proxy deployment issue
            David Ward Master

            asif ali wrote:

             

            Looks like you have not deployed HelloWorldWS webservice.\

             

            Whereas it is true that is causing the error, I believe Kapil doesn't want to have to deploy the HelloWorldWS webservice.

             

            Because he changed the wsdl URL to something else, the dependency on HelloWorldWS can be removed.  To do this:

            • Remove the wsbarrier-service.xml file.
            • Remove this line from deployment.xml: <depends>jboss.ws:context=Quickstart_webservice_proxy_basic_ws,endpoint=HelloWorldWS.Barrier</depends>
            • If you are still using ant to deploy, you will want to remove the creation/deployment/undeployment of the war file containing HelloWorldWS, as well as the inclusion of wsbarrier-service.xml in the deployment.

             

            Hope this helps,

            David

            • 3. Re: SOAP Proxy deployment issue
              Kapil Jain Newbie

              Thanks for the response. I could resolve the issue by removign the files.

               

              One more question related to configuration is as follows: As you can see I am putting absolute path right now but want to use relative path to reduce dependency.

               

              <property name="wsdl" value="file://C:/JBossWorkspace/***Proxy/build/META-INF/*****Request.wsdl"/>

               

              Thanks,

              Kapil

              • 4. Re: SOAP Proxy deployment issue
                David Ward Master
                One more question related to configuration is as follows: As you can see I am putting absolute path right now but want to use relative path to reduce dependency.

                 

                <property name="wsdl" value="file://C:/JBossWorkspace/***Proxy/build/META-INF/*****Request.wsdl"/>

                It appears relative file:// paths will not work.  To test it, I dropped a HelloWorldWS.wsdl in jbossesb-server-4.8/samples/.

                 

                <property name="wsdl" value="file://../samples/HelloWorldWS.wsdl"/>

                 

                I got this stack trace:

                 

                Caused by: java.io.FileNotFoundException: /samples/HelloWorldWS.wsdl
                    at org.jboss.net.protocol.file.FileURLConnection.connect(FileURLConnection.java:94)
                    at org.jboss.net.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:103)
                    at java.net.URL.openStream(URL.java:1007)
                    at org.jboss.soa.esb.actions.soap.RemoteWsdlLoader.load(RemoteWsdlLoader.java:70)
                    at org.jboss.soa.esb.actions.soap.AbstractWsdlContractPublisher.getWsdl(AbstractWsdlContractPublisher.java:199)
                    at org.jboss.soa.esb.actions.soap.proxy.SOAPProxyWsdlLoader$Puller.pull(SOAPProxyWsdlLoader.java:427)
                    at org.jboss.soa.esb.actions.soap.proxy.SOAPProxyWsdlLoader.load(SOAPProxyWsdlLoader.java:150)
                    at org.jboss.soa.esb.actions.soap.proxy.SOAPProxy.<init>(SOAPProxy.java:172)

                 

                After looking at the source, I found the reason in org.jboss.soa.esb.actions.soap.RemoteWsdlLoader, lines 69-71:

                 

                        if(url.startsWith("file")) {
                            originalStream = new URL(url).openStream();
                        }

                 

                The url variable (a String) could have it's "file://" prefix removed, then a new File object created, then call file.getAbsolutePath() on it, then re-preprend the "file://" prefix back on it before passing it into new URL(url).openStream().  This way FileURLConnection would always get an absolute path.

                 

                However, I would question how useful relative paths are, considering it would always have to be relative to JBoss AS' current working directory ("."), which will always be it's bin directory (ie: jbossesb-server-4.8/bin/.)  Your relative path therefore always be bound to where JBoss AS is installed.  I doubt this would be desirable...

                 

                Thoughts?

                • 5. Re: SOAP Proxy deployment issue
                  Kevin Conner Master

                  Use property substitution or classpaths?

                   

                  Kev

                  • 6. Re: SOAP Proxy deployment issue
                    Kevin Conner Master

                    You can find some properties in the boot.log of the server, along with their values.

                     

                    Interesting ones could be jboss.home.url, jboss.server.home.url and jboss.server.config.url.

                     

                    You would use them by setting the value to "${property}/xxx"

                     

                    Kev

                    • 7. Re: SOAP Proxy deployment issue
                      David Ward Master

                      Thanks, Kev.  I completely forgot about property substitution.  That is the way to go, IMO.