Asha AmbikaVijayakumaran wrote:
Dear team,
I am having a c++ service component eg:Account Service from your
examples, the service is exposed via ws binding, and now i need this
service to be accessed from java using apache tuscany,
I have written a composite and i have attached it here.
I am getting following exceptions
Composite assembly problem: Reference not found for component
reference: HelloWorldServiceComponent/accountService
Composite assembly problem: No type specified on component property:
HelloWorldServiceComponent/accountService
Composite assembly problem: Component reference target not found:
AccountService
Can anyone help me to find out a solution how c++ service can be used
in java.
I am toubling to find a solution.
Please help
Thanks/Regards
Asha
Hi, you probably just need a minor fix to your composite file and maybe
a small change to your Java class as well.
A component/reference does not need a target attribute if it's promoted
by a composite/reference.
If present, a component/reference target should reference another
component/service.
You don't need an accountService component/reference element anyway if
the reference is already declared with an @Reference annotation in your
HelloWorldServiceComponent class.
But from the "No type specified on component property:
HelloWorldServiceComponent/accountService" message I'm guessing that
maybe it's not annotated or annotated with an @Property instead?
So I'd suggest the following.
1. Change your composite as follows:
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
targetNamespace="http://helloworld"
xmlns:hw="http://helloworld"
name="helloworldwsclient">
<component name="HelloWorldServiceComponent">
<implementation.java class="helloworld.HelloWorldServiceComponent"/>
</component>
<reference name="HelloWorldService"
promote="HelloWorldServiceComponent/helloWorldService">
<interface.java interface="helloworld.HelloWorldService" />
<binding.ws
wsdlElement="http://helloworld#wsdl.port(HelloWorldService/HelloWorldSoapPort)"/>
</reference>
<reference name="AccountService"
promote="HelloWorldServiceComponent/accountService">
<interface.wsdl
interface="http://www.bigbank.com/AccountService#wsdl.interface(AccountService)"/>
<binding.ws
wsdlElement="http://www.bigbank.com/AccountService#wsdl.port(AccountService/AccountServiceSOAP)"/>
</reference>
</composite>
2. Make sure that your HelloWorldServiceComponent annotates the
accountService field or setter method with an @Reference annotation.
Hope this helps.
--
Jean-Sebastien
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]