1 Reply Latest reply on Aug 7, 2006 9:33 AM by thomas.diesler

    Cannot deploy webservice client when web service url unreach

    tang_2001

      Hello,

      I have a web service client deployed on my jboss-4.0.4GA server as a service reference as declared in my ejb-jar.xml file:

      <service-ref>
       <service-ref-name>service/BDPService</service-ref-name>
       <service-interface>ch.ne.gubpm.ws.client.bdp.BDPService</service-interface>
       <wsdl-file>META-INF/wsdl/BDPService.wsdl</wsdl-file>
       <jaxrpc-mapping-file>
       META-INF/bdp/jaxrpc-mapping.xml
       </jaxrpc-mapping-file>
       <port-component-ref>
       <service-endpoint-interface>
       ch.ne.gubpm.ws.client.bdp.WSBDPInterface
       </service-endpoint-interface>
       </port-component-ref>
      </service-ref>


      My client uses jbossws-1.0.1GA with jdk1.5.
      I can successfully deploy and run this client when the webservice is responding. But if the webservice is down, I can no longer deploy the client and I get the following error at deployment:

      11:03:22,243 WARN [ServiceController] Problem starting service jboss.j2ee:jndiName=SessionFacade,service=EJB
      org.jboss.deployment.DeploymentException: Cannot bind webservice to client environment; - nested throwable: (org.jboss.ws.WSException: Cannot unmarshall wsdl, cause: WSDLException (at /definitions/types/xsd:schema): faultCode=OTHER_ERROR: An error occurred trying to resolve schema referenced at 'http://wsstin010:8099/bdp?xsd=1', relative to 'jar:file:/G:/GUBPM/jboss-4.0.4.GA/server/default/tmp/deploy/tmp24781gubpm-server-ejb.jar!/META-INF/wsdl/BDPService.wsdl'.: Cannot access imported wsdl [http://wsstin010:8099/bdp?xsd=1], Connection refused: connect: java.lang.RuntimeException: Cannot access imported wsdl [http://wsstin010:8099/bdp?xsd=1], Connection refused: connect
       at org.jboss.ws.metadata.wsdl.WSDL11DefinitionFactory$WSDLLocatorImpl.getImportInputSource(WSDL11DefinitionFactory.java:189)
       at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:740)
       at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:620)
       at com.ibm.wsdl.xml.WSDLReaderImpl.parseTypes(WSDLReaderImpl.java:583)
       at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(WSDLReaderImpl.java:302)
       at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2133)
       at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2125)
       at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2150)
       at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2171)
       at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2201)
       at org.jboss.ws.metadata.wsdl.WSDL11DefinitionFactory.parse(WSDL11DefinitionFactory.java:86)
       at org.jboss.ws.integration.jboss.WebServiceClientDeployer.getWsdlDefinition(WebServiceClientDeployer.java:129)
       at org.jboss.ws.integration.jboss.WebServiceClientDeployer.setupServiceRefEnvironment(WebServiceClientDeployer.java:79)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
       at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
       at $Proxy53.setupServiceRefEnvironment(Unknown Source)
       at org.jboss.webservice.WebServiceClientHandler.setupServiceRefEnvironment(WebServiceClientHandler.java:94)
       at org.jboss.ejb.Container.setupEnvironment(Container.java:1239)
       at org.jboss.ejb.Container.startService(Container.java:824)
       at org.jboss.ejb.SessionContainer.startService(SessionContainer.java:397)
       at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
       at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
       at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
      ...
      


      It seems that the url defined in the jboss-client.xml file (see below) is checked at deployment.

      <service-ref>
       <service-ref-name>service/BDPService</service-ref-name>
       <wsdl-override>http://wsstin010:8099/bdp?wsdl</wsdl-override>
       </service-ref>


      What can I do to avoid this checking since I have no garantee that the webservice is up at the moment I deploy my client? Is it a configuration problem or a bug?

      Thanks

        • 1. Re: Cannot deploy webservice client when web service url unr
          thomas.diesler

          The <wsdl-override> element is for clients that PREFER to load the wsdl from the remote server at deploy time.

          Ideally, a client uses <wsdl-file> in <service-ref> instead of <wsdl-override>. In that case the wsdl must contain the correct soap address and all referenced wsdl/xsd artifacts must be deployed as well and referenced relative.