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