Cannot deploy webservice client when web service url unreach
tang_2001 Aug 3, 2006 5:52 AMHello,
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