Deploying WebService in BPEL Project - selection of size oth
zono Jan 15, 2009 6:10 AMSorry, because maybe it´s a stupid error. I´m a beginer, and I cannot understan all...
I've been trying to consume a WebService in BPEL 2.0 process with jbpm and the following exception occurs. Any idea what's the problem?
11:47:03,840 WARN [ProxyWarnLog] Narrowing proxy to class org.jbpm.bpel.graph.def.CompositeActivity - this operation breaks ==
11:47:03,872 ERROR [XPathEvaluator] selection of size other than one: []
I think is a bad assigment, but I´ve not idea. The webservice works good...
My BPEL file is the next:
<?xml version="1.0" encoding="UTF-8"?> <bpws:process exitOnStandardFault="yes" name="HelloWorld" targetNamespace="http://jbpm.org/examples/hello" xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:ns="http://jbpm.org/examples/helloArtifacts" xmlns:ns0="http://sundn/" xmlns:ns1="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://jbpm.org/examples/hello"> <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="hello.wsdl" namespace="http://jbpm.org/examples/hello"/> <bpws:import importType="http://www.w3.org/2001/XMLSchema" location="bundleentry://478/cache/www.w3.org/2001/XMLSchema.xsd" namespace="http://www.w3.org/2001/XMLSchema"/> <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="http://127.0.0.1:8080/webService/webServiceServletName?wsdl" namespace="http://sundn/"/> <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="helloArtifacts.wsdl" namespace="http://jbpm.org/examples/helloArtifacts"/> <bpws:partnerLinks> <bpws:partnerLink myRole="Greeter" name="caller" partnerLinkType="tns:Greeter-Caller"> <bpws:documentation>establishes the relationship with the caller agent</bpws:documentation> </bpws:partnerLink> <bpws:partnerLink name="PartnerLink" partnerLinkType="ns:validationPLT" partnerRole="validationRolePLT"/> </bpws:partnerLinks> <bpws:variables> <bpws:variable messageType="tns:nameMessage" name="request"> <bpws:documentation>holds the incoming message</bpws:documentation> </bpws:variable> <bpws:variable messageType="tns:greetingMessage" name="response"> <bpws:documentation>holds the outgoing message</bpws:documentation> </bpws:variable> <bpws:variable messageType="ns0:webServiceName_validNameResponse" name="PartnerLinkResponse"/> <bpws:variable messageType="ns0:webServiceName_validName" name="PartnerLinkRequest"/> </bpws:variables> <bpws:sequence name="MainSeq"> <bpws:receive createInstance="yes" name="ReceiveName" operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="request"> <bpws:documentation>receive the name of a person</bpws:documentation> </bpws:receive> <bpws:assign name="Assign" validate="no"> <bpws:copy> <bpws:from part="name" variable="request"> <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/tns:name]]></bpws:query> </bpws:from> <bpws:to part="validName" variable="PartnerLinkRequest"> <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/ns0:webService/ns0:param]]></bpws:query> </bpws:to> </bpws:copy> </bpws:assign> <bpws:invoke inputVariable="PartnerLinkRequest" name="Invoke" operation="validName" outputVariable="PartnerLinkResponse" partnerLink="PartnerLink" portType="ns0:webServiceName"/> <bpws:assign name="Assign1" validate="no"> <bpws:copy> <bpws:from part="validNameResponse" variable="PartnerLinkResponse"> <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/ns0:webService/ns0:return]]></bpws:query> </bpws:from> <bpws:to part="greeting" variable="response"/> </bpws:copy> <bpws:copy> <bpws:from><![CDATA[concat('Hello, ', $request.name, '!')]]></bpws:from> <bpws:to part="greeting" variable="response"/> </bpws:copy> </bpws:assign> <bpws:reply name="SendGreeting" operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="response"> <bpws:documentation>send greeting back to caller</bpws:documentation> </bpws:reply> </bpws:sequence> </bpws:process>
My Artifacts file:
<?xml version="1.0" encoding="UTF-8"?> <definitions name="helloArtifacts" targetNamespace="http://jbpm.org/examples/helloArtifacts" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns:tns="http://jbpm.org/examples/helloArtifacts" xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop" xmlns:wsdl="http://jbpm.org/examples/hello" xmlns:wsdl1="http://sundn/"> <import location="http://127.0.0.1:8080/webService/webServiceServletName?wsdl" namespace="http://sundn/"/> <plnk:partnerLinkType name="validationPLT"> <plnk:role name="validationRolePLT" portType="wsdl1:webServiceName"/> </plnk:partnerLinkType> <import location="http://127.0.0.1:8080/webService/webServiceServletName?wsdl" namespace="http://sundn/"/> </definitions>
And my WSDL:
<?xml version="1.0" encoding="UTF-8"?> <definitions targetNamespace="http://jbpm.org/examples/hello" xmlns:tns="http://jbpm.org/examples/hello" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:plt="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns="http://schemas.xmlsoap.org/wsdl/"> <message name="greetingMessage"> <documentation>carries the greeting</documentation> <part name="greeting" type="xsd:string" /> </message> <message name="nameMessage"> <documentation>carries the name of a person</documentation> <part name="name" type="xsd:string" /> <part name="pass" type="xsd:string"></part> </message> <portType name="Greeter"> <documentation>describes the interface presented to callers</documentation> <operation name="sayHello"> <input message="tns:nameMessage" /> <output message="tns:greetingMessage" /> </operation> </portType> <plt:partnerLinkType name="Greeter-Caller"> <plt:documentation> characterizes the relationship between the greeter and its caller </plt:documentation> <plt:role name="Greeter" portType="tns:Greeter"> <plt:documentation> Caller does not provide services to Greeter, hence the "Caller" role is omitted </plt:documentation> </plt:role> </plt:partnerLinkType> </definitions>
I was finding in the log file, I I have not idea...
2009-01-15 11:27:00,331 DEBUG [org.hibernate.SQL] /* load org.jbpm.instantiation.Delegation */ select delegation0_.ID_ as ID1_10_0_, delegation0_.CLASSNAME_ as CLASSNAME2_10_0_, delegation0_.CONFIGURATION_ as CONFIGUR3_10_0_, delegation0_.CONFIGTYPE_ as CONFIGTYPE4_10_0_, delegation0_.PROCESSDEFINITION_ as PROCESSD5_10_0_ from JBPM_DELEGATION delegation0_ where delegation0_.ID_=? ... 2009-01-15 11:27:00,331 DEBUG [org.hibernate.loader.Loader] done entity load 2009-01-15 11:27:00,331 DEBUG [org.jbpm.bpel.graph.scope.FaultActionHandler] handling fault exception: org.jbpm.bpel.graph.exe.ScopeInstance@1bccddb[name=global,token=/,state=AP] org.jbpm.bpel.graph.exe.BpelFaultException: org.jbpm.bpel.graph.exe.FaultInstance@3bf56f[name={http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure] at org.jbpm.bpel.sublang.xpath.XPathEvaluator.narrowToSingleNode(XPathEvaluator.java:258) at org.jbpm.bpel.sublang.xpath.XPathVariableQueryEvaluator.evaluate(XPathVariableQueryEvaluator.java:63) at org.jbpm.bpel.graph.basic.assign.FromVariable.extract(FromVariable.java:63) at sun.reflect.GeneratedMethodAccessor254.invoke(Unknown Source) 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:173) at org.jbpm.bpel.graph.basic.assign.From_$$_javassist_1.extract(From_$$_javassist_1.java) at org.jbpm.bpel.graph.basic.assign.Copy.execute(Copy.java:36) at org.jbpm.bpel.graph.basic.Assign.execute(Assign.java:45) at org.jbpm.bpel.graph.def.Activity.enter(Activity.java:123) at org.jbpm.graph.def.Transition.take(Transition.java:151) at org.jbpm.graph.def.Node.leave(Node.java:390) at org.jbpm.bpel.graph.def.Activity.proceed(Activity.java:241) at org.jbpm.bpel.graph.def.Activity.leave(Activity.java:229) at org.jbpm.bpel.graph.basic.Receive.messageReceived(Receive.java:53) at sun.reflect.GeneratedMethodAccessor252.invoke(Unknown Source) 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:173) at org.jbpm.bpel.graph.basic.Receive_$$_javassist_19.messageReceived(Receive_$$_javassist_19.java) at org.jbpm.bpel.integration.def.ReceiveAction.deliverMessage(ReceiveAction.java:98) at sun.reflect.GeneratedMethodAccessor249.invoke(Unknown Source) 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:173) at org.jbpm.bpel.integration.def.ReceiveAction_$$_javassist_92.deliverMessage(ReceiveAction_$$_javassist_92.java) at org.jbpm.bpel.integration.jms.StartListener.deliverRequest(StartListener.java:219) at org.jbpm.bpel.integration.jms.StartListener.onMessage(StartListener.java:165) at org.jboss.mq.SpyMessageConsumer.run(SpyMessageConsumer.java:697) at java.lang.Thread.run(Thread.java:595) 2009-01-15 11:27:00,331 DEBUG [org.jbpm.bpel.graph.exe.ScopeInstance] state change to FP on Scope(global) for Token(/) 2009-01-15 11:27:00,331 DEBUG [org.hibernate.cache.NonstrictReadWriteCache] Cache lookup: org.jbpm.bpel.graph.scope.Scope.faultHandlers#1861 2009-01-15 11:27:00,331 DEBUG [org.hibernate.cache.NonstrictReadWriteCache] Cache miss 2009-01-15 11:27:00,331 DEBUG [org.hibernate.loader.Loader] loading collection: [org.jbpm.bpel.graph.scope.Scope.faultHandlers#1861] 2009-01-15 11:27:00,331 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to open PreparedStatement (open PreparedStatements: 0, globally: 0) 2009-01-15 11:27:00,331 DEBUG [org.hibernate.jdbc.ConnectionManager] opening JDBC connection 2009-01-15 11:27:00,331 DEBUG [org.hibernate.SQL] /* load one-to-many org.jbpm.bpel.graph.scope.Scope.faultHandlers */ select faulthandl0_.SCOPE_ as SCOPE37_1_, faulthandl0_.ID_ as ID1_1_, faulthandl0_.NODECOLLECTIONINDEX_ as NODECOL35_1_, faulthandl0_.ID_ as ID1_5_0_, faulthandl0_.NAME_ as NAME3_5_0_, faulthandl0_.DESCRIPTION_ as DESCRIPT4_5_0_, faulthandl0_.PROCESSDEFINITION_ as PROCESSD5_5_0_, faulthandl0_.ISASYNC_ as ISASYNC6_5_0_, faulthandl0_.ISASYNCEXCL_ as ISASYNCE7_5_0_, faulthandl0_.ACTION_ as ACTION8_5_0_, faulthandl0_.SUPERSTATE_ as SUPERSTATE9_5_0_, faulthandl0_.SUPPRESSJOINFAILURE_ as SUPPRES18_5_0_, faulthandl0_.COMPOSITEACTIVITY_ as COMPOSI19_5_0_, faulthandl0_.JOINCONDITION_ as JOINCON20_5_0_, faulthandl0_.ACTIVITY_ as ACTIVITY33_5_0_, faulthandl0_.VARIABLE_ as VARIABLE24_5_0_, faulthandl0_.FAULTLOCALNAME_ as FAULTLO22_5_0_, faulthandl0_.FAULTNAMESPACE_ as FAULTNA23_5_0_ from JBPM_NODE faulthandl0_ where ( faulthandl0_.CLASS_ = 'V' ) and faulthandl0_.SCOPE_=? 2009-01-15 11:27:00,331 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to open ResultSet (open ResultSets: 0, globally: 0) 2009-01-15 11:27:00,331 DEBUG [org.hibernate.loader.Loader] result set contains (possibly empty) collection: [org.jbpm.bpel.graph.scope.Scope.faultHandlers#1861] I have modify the queries a lot of times... What must I do?? Thanks!