You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Florian Grißmer <sp...@googlemail.com> on 2010/03/03 12:39:28 UTC
Problem invoking Webservice in ServiceMix
Hi
I build 2 HelloWorld projects, the one invoking the other in a BPEL process.
It is like the Ping-Pong-Example, but instead of one invoking another
serviceunit, I invoke a deployed WebService. I'm using maven projects with
Apache Servicemix 3.3.1 und Apache Ode 1.3.3.
Im invoking my second process which also deployed on the same servicemix
with this code:
<bpel:process name="HelloWorld" targetNamespace="
http://www.test.com/HelloWorld"
suppressJoinFailure="yes" xmlns:tns="http://www.test.com/HelloWorld"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:xsd="http://www.example.org/HelloWorld" xmlns:ns1="
http://www.test.com/HelloWorld2"
xmlns:ns="http://www.example.org/HelloWorld2">
<!-- Import the client WSDL -->
<bpel:import namespace="http://www.test.com/HelloWorld2"
location="HelloWorld2.wsdl" importType="
http://schemas.xmlsoap.org/wsdl/"></bpel:
import>
<bpel:import location="HelloWorld.wsdl"
namespace="http://www.test.com/HelloWorld" importType="
http://schemas.xmlsoap.org/wsdl/" />
<bpel:partnerLinks>
<!-- The 'client' role represents the requester of this service. -->
<bpel:partnerLink name="client" partnerLinkType="tns:HelloWorld"
myRole="HelloWorldProvider" />
<bpel:partnerLink name="client2" partnerLinkType="ns1:HelloWorld2"
partnerRole="HelloWorld2Provider"></bpel:partnerLink>
</bpel:partnerLinks>
...
<bpel:sequence name="main">
...
<bpel:invoke name="Invoke" partnerLink="client2" operation="process"
portType="ns1:HelloWorld2" inputVariable="input2"
outputVariable="output2"></bpel:invoke>
...
</bpel:sequence>
</bpel:process>
The partnerlink is deployed in this deploy.xml
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:HelloWorld="http://www.test.com/HelloWorld">
<process name="HelloWorld:HelloWorld">
<active>true</active>
<retired>false</retired>
<process-events generate="all" />
<provide partnerLink="client">
<service name="HelloWorld:HelloService" port="HelloPort" />
</provide>
<invoke partnerLink="client2">
<service name="HelloWorld:Hello2Service" port="Hello2Port" />
</invoke>
</process>
</deploy>
The invoked webservice is referenced in this xbean.xml:
<beans xmlns:http="http://servicemix.apache.org/http/1.0"
xmlns:tns="http://www.test.com/HelloWorld">
<http:endpoint service="tns:Hello2Service"
endpoint="Hello2Port"
role="provider"
locationURI="http://localhost:8080/HelloWorld2/"
soap="true"/>
</beans>
But everytime I invoke my Servive with SoapUI I get this error:
ERROR - JacobVPU - Method "run" in class
"org.apache.ode.b
pel.runtime.INVOKE" threw an unexpected exception.
java.lang.ClassCastException: org.apache.ode.jbi.JbiEndpointReference cannot
be
cast to org.apache.ode.bpel.epr.MutableEndpoint
at
org.apache.ode.jbi.EndpointReferenceContextImpl.getConfigLookup(Endpo
intReferenceContextImpl.java:116)
at
org.apache.ode.store.ProcessConfImpl.getEndpointProperties(ProcessCon
fImpl.java:423)
at
org.apache.ode.bpel.engine.BpelProcess.getTimeout(BpelProcess.java:10
89)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.scheduleInvokeCheck
(BpelRuntimeContextImpl.java:842)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeC
ontextImpl.java:780)
at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:100)
at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:4
51)
at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntime
ContextImpl.java:875)
at
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(Pa
rtnerLinkMyRoleImpl.java:206)
at
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java
:237)
at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.ja
va:408)
at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineIm
pl.java:439)
at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerIm
pl.java:441)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleSchedu
ler.java:411)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleSchedu
ler.java:405)
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(Simpl
eScheduler.java:218)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleSchedule
r.java:404)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleSchedule
r.java:401)
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
at java.lang.Thread.run(Thread.java:619)
What am I doing wrong, I attached the projects. Plz help me.
Re: Problem invoking Webservice in ServiceMix
Posted by Raidwan <Ra...@hotmail.com>.
Hi,
I've got the same problem by using servicemix 3.2.3 (with console mode on
tomcat) with ODE jbi 1.3.
I've resolve it by integrate a fix :
https://issues.apache.org/jira/browse/ODE-614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12715073#action_12715073
Note that it's resolve in ODE 1.3.4 but the 1.3.4 is not said as "stable"...
So , i've take my little hand and integrate and re-compile ODE jbi (with
ruby)
Now, no problem to invoke through servicemix :)
Raid
Rafal Rusin wrote:
>
> Please try out latest 1.3.X stable snapshot
> http://hudson.zones.apache.org/hudson/job/ODE-1.x/
>
> On 3 March 2010 12:39, Florian Grißmer <sp...@googlemail.com> wrote:
>> Hi
>> I build 2 HelloWorld projects, the one invoking the other in a BPEL
>> process.
>> It is like the Ping-Pong-Example, but instead of one invoking another
>> serviceunit, I invoke a deployed WebService. I'm using maven projects
>> with
>> Apache Servicemix 3.3.1 und Apache Ode 1.3.3.
>> Im invoking my second process which also deployed on the same servicemix
>> with this code:
>>
>>
>> <bpel:process name="HelloWorld"
>> targetNamespace="http://www.test.com/HelloWorld"
>> suppressJoinFailure="yes" xmlns:tns="http://www.test.com/HelloWorld"
>> xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
>> xmlns:xsd="http://www.example.org/HelloWorld"
>> xmlns:ns1="http://www.test.com/HelloWorld2"
>> xmlns:ns="http://www.example.org/HelloWorld2">
>>
>> <!-- Import the client WSDL -->
>> <bpel:import namespace="http://www.test.com/HelloWorld2"
>> location="HelloWorld2.wsdl"
>> importType="http://schemas.xmlsoap.org/wsdl/"></bpel:
>> import>
>> <bpel:import location="HelloWorld.wsdl"
>> namespace="http://www.test.com/HelloWorld"
>> importType="http://schemas.xmlsoap.org/wsdl/" />
>>
>> <bpel:partnerLinks>
>> <!-- The 'client' role represents the requester of this service.
>> -->
>> <bpel:partnerLink name="client" partnerLinkType="tns:HelloWorld"
>> myRole="HelloWorldProvider" />
>> <bpel:partnerLink name="client2"
>> partnerLinkType="ns1:HelloWorld2"
>> partnerRole="HelloWorld2Provider"></bpel:partnerLink>
>> </bpel:partnerLinks>
>>
>> ...
>> <bpel:sequence name="main">
>> ...
>> <bpel:invoke name="Invoke" partnerLink="client2"
>> operation="process"
>> portType="ns1:HelloWorld2" inputVariable="input2"
>> outputVariable="output2"></bpel:invoke>
>> ...
>> </bpel:sequence>
>> </bpel:process>
>>
>>
>> The partnerlink is deployed in this deploy.xml
>>
>> <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
>> xmlns:HelloWorld="http://www.test.com/HelloWorld">
>> <process name="HelloWorld:HelloWorld">
>> <active>true</active>
>> <retired>false</retired>
>> <process-events generate="all" />
>> <provide partnerLink="client">
>> <service name="HelloWorld:HelloService" port="HelloPort" />
>> </provide>
>> <invoke partnerLink="client2">
>> <service name="HelloWorld:Hello2Service" port="Hello2Port" />
>> </invoke>
>> </process>
>> </deploy>
>>
>>
>> The invoked webservice is referenced in this xbean.xml:
>>
>> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
>> xmlns:tns="http://www.test.com/HelloWorld">
>>
>> <http:endpoint service="tns:Hello2Service"
>> endpoint="Hello2Port"
>> role="provider"
>> locationURI="http://localhost:8080/HelloWorld2/"
>> soap="true"/>
>>
>> </beans>
>>
>>
>> But everytime I invoke my Servive with SoapUI I get this error:
>>
>> ERROR - JacobVPU - Method "run" in class
>> "org.apache.ode.b
>> pel.runtime.INVOKE" threw an unexpected exception.
>> java.lang.ClassCastException: org.apache.ode.jbi.JbiEndpointReference
>> cannot
>> be
>> cast to org.apache.ode.bpel.epr.MutableEndpoint
>> at
>> org.apache.ode.jbi.EndpointReferenceContextImpl.getConfigLookup(Endpo
>> intReferenceContextImpl.java:116)
>> at
>> org.apache.ode.store.ProcessConfImpl.getEndpointProperties(ProcessCon
>> fImpl.java:423)
>> at
>> org.apache.ode.bpel.engine.BpelProcess.getTimeout(BpelProcess.java:10
>> 89)
>> at
>> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.scheduleInvokeCheck
>> (BpelRuntimeContextImpl.java:842)
>> at
>> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeC
>> ontextImpl.java:780)
>> at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:100)
>> at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>> sorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at
>> org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:4
>> 51)
>> at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
>> at
>> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntime
>> ContextImpl.java:875)
>> at
>> org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(Pa
>> rtnerLinkMyRoleImpl.java:206)
>> at
>> org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java
>> :237)
>> at
>> org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.ja
>> va:408)
>> at
>> org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineIm
>> pl.java:439)
>> at
>> org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerIm
>> pl.java:441)
>> at
>> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleSchedu
>> ler.java:411)
>> at
>> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleSchedu
>> ler.java:405)
>> at
>> org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(Simpl
>> eScheduler.java:218)
>> at
>> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleSchedule
>> r.java:404)
>> at
>> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleSchedule
>> r.java:401)
>> at
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
>> utor.java:886)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
>> .java:908)
>> at java.lang.Thread.run(Thread.java:619)
>>
>>
>> What am I doing wrong, I attached the projects. Plz help me.
>
>
> Regards,
> --
> Rafał Rusin
> http://rrusin.blogspot.com
> http://www.touk.pl
> http://top.touk.pl
>
>
--
View this message in context: http://old.nabble.com/Problem-invoking-Webservice-in-ServiceMix-tp27767114p27918790.html
Sent from the Apache Ode User mailing list archive at Nabble.com.
Re: Problem invoking Webservice in ServiceMix
Posted by Rafal Rusin <ra...@gmail.com>.
Please try out latest 1.3.X stable snapshot
http://hudson.zones.apache.org/hudson/job/ODE-1.x/
On 3 March 2010 12:39, Florian Grißmer <sp...@googlemail.com> wrote:
> Hi
> I build 2 HelloWorld projects, the one invoking the other in a BPEL process.
> It is like the Ping-Pong-Example, but instead of one invoking another
> serviceunit, I invoke a deployed WebService. I'm using maven projects with
> Apache Servicemix 3.3.1 und Apache Ode 1.3.3.
> Im invoking my second process which also deployed on the same servicemix
> with this code:
>
>
> <bpel:process name="HelloWorld"
> targetNamespace="http://www.test.com/HelloWorld"
> suppressJoinFailure="yes" xmlns:tns="http://www.test.com/HelloWorld"
> xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
> xmlns:xsd="http://www.example.org/HelloWorld"
> xmlns:ns1="http://www.test.com/HelloWorld2"
> xmlns:ns="http://www.example.org/HelloWorld2">
>
> <!-- Import the client WSDL -->
> <bpel:import namespace="http://www.test.com/HelloWorld2"
> location="HelloWorld2.wsdl"
> importType="http://schemas.xmlsoap.org/wsdl/"></bpel:
> import>
> <bpel:import location="HelloWorld.wsdl"
> namespace="http://www.test.com/HelloWorld"
> importType="http://schemas.xmlsoap.org/wsdl/" />
>
> <bpel:partnerLinks>
> <!-- The 'client' role represents the requester of this service. -->
> <bpel:partnerLink name="client" partnerLinkType="tns:HelloWorld"
> myRole="HelloWorldProvider" />
> <bpel:partnerLink name="client2" partnerLinkType="ns1:HelloWorld2"
> partnerRole="HelloWorld2Provider"></bpel:partnerLink>
> </bpel:partnerLinks>
>
> ...
> <bpel:sequence name="main">
> ...
> <bpel:invoke name="Invoke" partnerLink="client2" operation="process"
> portType="ns1:HelloWorld2" inputVariable="input2"
> outputVariable="output2"></bpel:invoke>
> ...
> </bpel:sequence>
> </bpel:process>
>
>
> The partnerlink is deployed in this deploy.xml
>
> <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
> xmlns:HelloWorld="http://www.test.com/HelloWorld">
> <process name="HelloWorld:HelloWorld">
> <active>true</active>
> <retired>false</retired>
> <process-events generate="all" />
> <provide partnerLink="client">
> <service name="HelloWorld:HelloService" port="HelloPort" />
> </provide>
> <invoke partnerLink="client2">
> <service name="HelloWorld:Hello2Service" port="Hello2Port" />
> </invoke>
> </process>
> </deploy>
>
>
> The invoked webservice is referenced in this xbean.xml:
>
> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
> xmlns:tns="http://www.test.com/HelloWorld">
>
> <http:endpoint service="tns:Hello2Service"
> endpoint="Hello2Port"
> role="provider"
> locationURI="http://localhost:8080/HelloWorld2/"
> soap="true"/>
>
> </beans>
>
>
> But everytime I invoke my Servive with SoapUI I get this error:
>
> ERROR - JacobVPU - Method "run" in class
> "org.apache.ode.b
> pel.runtime.INVOKE" threw an unexpected exception.
> java.lang.ClassCastException: org.apache.ode.jbi.JbiEndpointReference cannot
> be
> cast to org.apache.ode.bpel.epr.MutableEndpoint
> at
> org.apache.ode.jbi.EndpointReferenceContextImpl.getConfigLookup(Endpo
> intReferenceContextImpl.java:116)
> at
> org.apache.ode.store.ProcessConfImpl.getEndpointProperties(ProcessCon
> fImpl.java:423)
> at
> org.apache.ode.bpel.engine.BpelProcess.getTimeout(BpelProcess.java:10
> 89)
> at
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.scheduleInvokeCheck
> (BpelRuntimeContextImpl.java:842)
> at
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeC
> ontextImpl.java:780)
> at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:100)
> at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:4
> 51)
> at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
> at
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntime
> ContextImpl.java:875)
> at
> org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(Pa
> rtnerLinkMyRoleImpl.java:206)
> at
> org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java
> :237)
> at
> org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.ja
> va:408)
> at
> org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineIm
> pl.java:439)
> at
> org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerIm
> pl.java:441)
> at
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleSchedu
> ler.java:411)
> at
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleSchedu
> ler.java:405)
> at
> org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(Simpl
> eScheduler.java:218)
> at
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleSchedule
> r.java:404)
> at
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleSchedule
> r.java:401)
> at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:908)
> at java.lang.Thread.run(Thread.java:619)
>
>
> What am I doing wrong, I attached the projects. Plz help me.
Regards,
--
Rafał Rusin
http://rrusin.blogspot.com
http://www.touk.pl
http://top.touk.pl