bpel-application.xml -> wrapperwsdl imports external wsdl. F
meghanai_99 Jun 15, 2007 5:54 PMHi All,
Here is my bpel-application.xml.
<?xml version="1.0" encoding="UTF-8"?> <bpelApplication name="QuotesFlow" xmlns="http://jbpm.org/bpel" xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jbpm.org/bpel http://jbpm.org/bpel/bpel_application_1_0.xsd"> <serviceCatalogs> <!-- listing of locally published WSDL documents --> <urlCatalog> <wsdl location="../wsdl/StockQuotePLWrapper.wsdl" /> </urlCatalog> </serviceCatalogs> </bpelApplication>
The StockQuotePLWrapper.wsdl imports actual wsdl which contains service and ports declaration. The wrapper file looks like this -
<wsdl:definitions name="StockQuoteplt" targetNamespace="http://www.webserviceX.NET/" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.webserviceX.NET/"> <wsdl:import namespace="http://www.webserviceX.NET/" location="resources/xml/StockQuote.wsdl" /> <plnk:partnerLinkType name="StockQuotePartnerLinkType"> <plnk:role name="StockQuoteProvider"> <plnk:portType name="tns:StockQuoteSoap" /> </plnk:role> </plnk:partnerLinkType> </wsdl:definitions>
However I get following exception when I call the BPEL process -
Caused by: java.lang.RuntimeException: no port implements the required port type: portType={http://www.webserviceX.NET/} StockQuoteSoap at org.jbpm.bpel.endpointref.SoapEndpointReference.selectPort(SoapEndpointReference.java:150) at org.jbpm.bpel.endpointref.SoapEndpointReference.selectPort(SoapEndpointReference.java:101) at org.jbpm.bpel.integration.jms.IntegrationControl.createPartnerClient(IntegrationControl.java:229) at org.jbpm.bpel.integration.jms.IntegrationControl.getPartnerClient(IntegrationControl.java:208) at org.jbpm.bpel.integration.jms.JmsIntegrationService.invoke(JmsIntegrationService.java:256) at org.jbpm.bpel.integration.def.InvokeAction.execute(InvokeAction.java:93) 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.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:205) at org.jbpm.graph.def.Action_$$_javassist_144.execute(Action_$$_javassist_144.java) at org.jbpm.graph.def.Node.execute(Node.java:338)
When I replace line in bpel-application to import StockQuote.wsdl directly and place that wsdl file under 'WEB-INF/wsdl' folder the call goes through successfully.
Btw, I am using JBoss 4.0.5GA, JBossWS 1.2.1GA and JBPM built locally from cvs. Please let me know what I can do to fix this problem. I would like to keep it the original way with wrapper file.
The webservice I am using in this sample is freely available at http://www.webservicex.net/stockquote.asmx
Thank you,
Meghana