"could not find service in wsdl" when deploying a jms soap consumer
vvchoy Jun 16, 2009 8:43 PMHi,
I have defined a servicemix-jms soap consumer for my project. However, whenever I deploy the SA, I always encounter the error.
Is it that I miss some attribute in the wsdl file ? Any help or insight would be very much appreciated.
1) The "service" element is defined in the wsdl file as:
<service name="AbwsQJmsSoapConsumerSvc">
<port name="AbwsQJmsSoapConsumerSvcPort" binding="abws:AbWebServiceSoapBinding" >
<jms:address jndiConnectionFactoryName="com.mdsi.port.paJms.queueConnectionFactory"
jndiDestinationName="com.mdsi.port.paJms.defaultCIS0.Req2Queue" >
<jms:JMSNamingProperty name="java.naming.factory.initial"
value="weblogic.jndi.WLInitialContextFactory" />
<jms:JMSNamingProperty name="java.naming.provider.url"
value="t3://host-id:port" />
</jms:address>
<jms:client messageType="text" />
</port>
</service>
2) The xbean.xml of the jms consumer is:
<jms:soap-consumer service="abws:AbwsQJmsSoapConsumerSvc"
endpoint="AbwsQJmsSoapConsumerSvcPort"
targetService="abws:AbwsQCxfProviderSvc"
targetEndpoint="AbwsQCxfProviderSvcPort"
destinationName="com.mdsi.port.paJms.defaultCIS0.Req2Queue"
replyDestinationName="com.mdsi.port.paJms.defaultCIS0.Resp2Queue"
wsdl="classpath:AbwsJmsConsumer.wsdl"
connectionFactory="#connectionFactory"
destinationResolver="#jmsDestinationResolver" />
<bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="com.mdsi.port.paJms.queueConnectionFactory" />
<property name="jndiTemplate" ref="webLogicJndiTemplate" />
</bean>
<bean id="jmsDestinationResolver" class="org.springframework.jms.support.destination.JndiDestinationResolver" >
<property name="jndiTemplate">
<ref bean="webLogicJndiTemplate"/>
</property>
</bean>
<bean id="webLogicJndiTemplate" class="org.springframework.jndi.JndiTemplate" >
<property name="environment">
<props>
<prop key="java.naming.factory.initial"> weblogic.jndi.WLInitialContextFactory</prop>
<prop key="java.naming.provider.url"> t3://host-id:port</prop>
</props>
</property>
</bean>
3) The error message is:
<loc-message>Could not find service 'AbwsQJmsSoapConsumerSvc' in wsdl</loc-message>
<stack-trace><![CDATA[javax.jbi.management.DeploymentException: Could not find service 'AbwsQJmsSoapConsumerSvc' in wsdl
at org.apache.servicemix.jms.endpoints.JmsSoapConsumerEndpoint.validateWsdl1(JmsSoapConsumerEndpoint.java:205)
at org.apache.servicemix.jms.endpoints.JmsSoapConsumerEndpoint.validate(JmsSoapConsumerEndpoint.java:138)
at org.apache.servicemix.common.AbstractDeployer.validate(AbstractDeployer.java:58)
at org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(BaseXBeanDeployer.java:55)
at org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:96)
at org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88)
at org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
at org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:520)
at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:35
4)
at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:257)
at org.apache.servicemix.jbi.framework.AutoDeploymentService.updateExternalArchive(AutoDeploymentService.java:20
5)
at org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchive(JBIContainer.java:494)
at org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchive(JBIContainer.java:504)
at org.apache.servicemix.jbi.framework.AdminCommandsService.deployServiceAssembly(AdminCommandsService.java:209)
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:597)
at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216)
at org.apache.servicemix.jbi.management.BaseStandardMBean.invoke(BaseStandardMBean.java:323)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1426)
at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)
at java.security.AccessController.doPrivileged(Native Method)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1366)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
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:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
]]></stack-trace>
Thanks a lot
V.