tuscany-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peng Han <han.p...@FernUni-Hagen.de>
Subject Re: how to access another SCA Component in BPEL
Date Wed, 03 Jun 2009 10:21:43 GMT
Hello, I guess we mess up a little bit with this thread. What we are 
trying to do is another way round :-)

saying B invokes A.  The details is attached again.

Dear Resende:

Thanks a lot for your prompt response.

I changed the binding to jsoncrpc and get the following error:

Exception in thread "main" org.osoa.sca.ServiceRuntimeException:
java.lang.ClassCastException:
org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLInterfaceImpl cannot
be cast to org.apache.tuscany.sca.interfacedef.java.JavaInterface
   at
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:220)
   at
org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.java:63)
   at helloworld.BPELClient.main(BPELClient.java:47)
Caused by: java.lang.ClassCastException:
org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLInterfaceImpl cannot
be cast to org.apache.tuscany.sca.interfacedef.java.JavaInterface
   at
org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCServiceBindingProvider.getTargetJavaClass(JSONRPCServiceBindingProvider.java:158)
   at
org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCServiceBindingProvider.start(JSONRPCServiceBindingProvider.java:91)
   at
org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl$3.run(CompositeActivatorImpl.java:630)
   at java.security.AccessController.doPrivileged(Native Method)
   at
org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl.start(CompositeActivatorImpl.java:628)
   at
org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl.start(CompositeActivatorImpl.java:560)
   at org.apache.tuscany.sca.node.impl.NodeImpl.start(NodeImpl.java:668)
   at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:182)
   at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(DefaultSCADomain.java:97)
   at
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:182)
   ... 2 more


However, if I change the interface of BPEL component service from WS to
Java as follows:

<component name="BPELHelloWorldComponent">
   <implementation.bpel process="hns:HelloWorld"/>
   <service name="helloPartnerLink">
     <interface.java
interface="org.apache.tuscany.implementation.bpel.example.helloworld.HelloPortType"/>
     <tuscany:binding.jsonrpc uri="http://localhost:8080/services"/>
   </service>
 </component>

I will get a "null" return value. The code in javascript is as follows:

//@Reference
var mainRegReference = new Reference( "RegistrationReference" );

var mytext = "Hello again";
document.write(mytext);


function getWeather() {
       var city = document.getElementById( "cityField" ).value;
       var country = document.getElementById( "countryField" ).value;

       var returnString = mainRegReference.hello("weather",
displayWeather);
}

function displayWeather(weather){
   document.write(weather);
}


Best Regards

Peng


> A scenario very similar to what you have described below is
> demonstrated in our helloworld-reference itest, and responding to your
> question, in this case we are not going to make a webservice call, but
> a local call, and you can even remove the binding.ws from the
> component B service.
>
> As for your previous question about bpel and widget, I'll see if I can
> find some time to reproduce the sample scenario in my sandbox.
>
> [1] https://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/itest/bpel/helloworld-reference
>
> On Tue, Jun 2, 2009 at 11:01 PM, Rupesh M G
> <Rupesh.Gopinathan@ibsplc.com> wrote:
>   
>> Hello,
>>
>>         Consider this interaction scenario in the same tuscany runtime.
>>
>>         SCA component A --> implementation.bpel
>>         SCA component B --> implementation.java with binding.ws
>>
>>         If A invokes B, will it be a local java call? or a webservice call.
>>
>>         In my understanding, BPEL can manage only webservice interactions.
>>
>>         I would like to know if SCA / tuscany does any extra step to avoid
>> this marshalling / unmarshalling overhead.
>>
>>
>> Regards,
>> Rupesh
>>
>>
>>
>> Peng Han <han.peng@FernUni-Hagen.de>
>>
>> 06/01/2009 03:50 PM
>>
>> Please respond to
>> user@tuscany.apache.org
>> To
>> user@tuscany.apache.org
>> cc
>> Subject
>> Re: how to access another SCA Component in BPEL
>>
>>
>>
>>
>>
>>     
>>> On Sat, May 30, 2009 at 12:35 PM, Peng Han <han.peng@gmail.com> wrote:
>>>
>>>       
>>>> Dear Resende:
>>>>
>>>> I tried to access the links you provided but it seems that it was broken.
>>>> Would you please check it?
>>>>
>>>>
>>>>         
>>> https://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/itest/bpel/helloworld-reference/
>>>
>>>
>>>       
>>>> Also I would like to ask whether it is possible to consume a service
>>>> provided by a .bpel implemented component
>>>> from a component implemented as widget and how. I tried to do it in the
>>>> following composite but the program
>>>> seems stuck when invoking the service.
>>>>
>>>>         
>>> You should be able to do this, using json-rpc binding.
>>> I responded to your other thread "Wiring a Widget Component and BPEL
>>> Component" with more details on how to try to accomplish this, but
>>> feel free to let me know if you are not making progress, and I can try
>>> to get some examples available.
>>>
>>>
>>>       
>>>> Thanks a lot!
>>>>
>>>> the composite is as follows:
>>>>
>>>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>>>>
>>>>
>>>> xmlns:hns="http://tuscany.apache.org/implementation/bpel/example/helloworld"
>>>>   xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
>>>> name="helloworld"
>>>>   targetNamespace="http://bpel">
>>>>   <component name="BPELHelloWorldComponent">
>>>>       <implementation.bpel process="hns:HelloWorld" />
>>>>       <service name="helloPartnerLink">
>>>>           <interface.wsdl
>>>>
>>>>
>>>> interface="http://tuscany.apache.org/implementation/bpel/example/helloworld.wsdl#wsdl.interface(HelloPortType)"
>>>> />
>>>>           <binding.ws uri="http://localhost:8080/BPELHelloWorldComponent"
>>>> />
>>>>       </service>
>>>>   </component>
>>>>   <component name="RegistrationWidgetComponent">
>>>>       <tuscany:implementation.widget location="Registration.html" />
>>>>       <service name="Widget">
>>>>           <tuscany:binding.http uri="http://localhost:8080/Registration"
>>>> />
>>>>       </service>
>>>>       <reference name="RegistrationReference">
>>>>           <interface.wsdl
>>>>
>>>>
>>>> interface="http://tuscany.apache.org/implementation/bpel/example/helloworld.wsdl#wsdl.interface(HelloPortType)"
>>>> />
>>>>           <binding.ws uri="http://localhost:8080/BPELHelloWorldComponent"
>>>> />
>>>>       </reference>
>>>>   </component>
>>>>   <service name="RegistrationService"
>>>> promote="RegistrationWidgetComponent/Widget" />
>>>>   <wire source="RegistrationWidgetComponent/RegistrationReference"
>>>>       target="BPELHelloWorldComponent/helloPartnerLink" />
>>>> </composite>
>>>>
>>>> Best Regards
>>>>
>>>> P.Han
>>>>
>>>>         
>>>>> This is demonstrated in the following bpel-reference iTest [1]. In
>>>>> this case, we have a grretings java component, and then a BPEL
>>>>> component that have a reference to this service as described in the
>>>>> composite below.
>>>>>
>>>>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>>>>>        targetNamespace="http://bpel"
>>>>>    xmlns:hns="http://helloworld"
>>>>>    name="helloworld">
>>>>>
>>>>>    <component name="HelloWorldService">
>>>>>        <implementation.bpel process="hns:HelloWorld"/>
>>>>>        <reference name="greetingsPartnerLink"
>>>>> target="GreetingsServiceComponent"/>
>>>>>    </component>
>>>>>
>>>>>    <component name="GreetingsServiceComponent">
>>>>>        <implementation.java class="greetings.GreetingsServiceImpl"
/>
>>>>>            <service name="GreetingsService">
>>>>>
>>>>>                <interface.wsdl
>>>>> interface="http://greetings#wsdl.interface(Greetings)" />
>>>>>            </service>
>>>>>    </component>
>>>>> </composite>
>>>>>
>>>>> Please let me know if you have questions or any problems running the
>>>>> sample test scenario.
>>>>>
>>>>>
>>>>> [1]
>>>>>
>>>>> https://svn.apache.org/repos/asf/tuscany/java/sca/itest/bpel/helloworld-reference/
>>>>>
>>>>>
>>>>> On Thu, Aug 28, 2008 at 8:21 PM, xuhongbo <xuhb@tongtech.com> wrote:
>>>>>
>>>>>
>>>>>           
>>>>>> Hi
>>>>>>       Now I am using  the sca provided build in bpel engine, and
want
>>>>>> to
>>>>>> invoke another sca-component in the bpel process;
>>>>>>       Though I could deploy the -java-implement sca component as
>>>>>> web-service by ws binding,then access it in bpel by import a wsdl
>>>>>> process.
>>>>>> This way ask for all sca-java-componet deployed as web-service, and
>>>>>> seems
>>>>>> too trival for deployment.
>>>>>>       So does anyone know how to use a sca-reference in a BPEL
>>>>>> implement
>>>>>> component to access another sca component? Or some other mechanism
can
>>>>>> direct access sca-component? Typically sca component invoked by the
>>>>>> bpel
>>>>>> is
>>>>>> always implement as Java Language.
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>
>>>>>           
>>>
>>>
>>>       
>>
>>
>>
>>
>>
>> DISCLAIMER:
>>
>> "The information in this e-mail and any attachment is intended only for the
>> person to whom it is addressed and may contain confidential and/or
>> privileged material. If you have received this e-mail in error, kindly
>> contact the sender and destroy all copies of the original communication. IBS
>> makes no warranty, express or implied, nor guarantees the accuracy, adequacy
>> or completeness of the information contained in this email or any attachment
>> and is not liable for any errors, defects, omissions, viruses or for
>> resultant loss or damage, if any, direct or indirect."
>>
>>
>>
>>
>>
>>     
>
>
>
>   


Mime
View raw message