On Mon, Feb 23, 2009 at 9:06 AM, Ramkumar R <[email protected]> wrote:

> Hi Simon,
>
> Just wanted to confirm if you get error message out of this scenario...
>
> I believe most probably, this should be the error message... please
> confirm...
>
> org.osoa.sca.ServiceRuntimeException: More than one service is declared on
> component ClientComponent. Service name is required to get the service.
>     at
> org.apache.tuscany.sca.core.context.ComponentContextHelper.getSingleService(ComponentContextHelper.java:313)
>     at
> org.apache.tuscany.sca.core.context.ComponentContextImpl.createSelfReference(ComponentContextImpl.java:166)
>     at
> org.apache.tuscany.sca.node.impl.NodeImpl.getServiceReference(NodeImpl.java:787)
>     at
> org.apache.tuscany.sca.node.impl.NodeImpl.getService(NodeImpl.java:719)
>     at
> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.getService(DefaultSCADomain.java:211)
>
>
>
> On Sat, Feb 21, 2009 at 7:10 PM, Simon Laws <[email protected]>wrote:
>
>> I'm looking at a Spring based payment component in the travel sample in
>> the sandbox [1] and am having problems in the case where the Spring context
>> and the implementations it references are unannotated.
>>
>> I have a bean...
>>
>> public class PaymentImpl implements Payment {
>>
>>     private CreditCardPayment creditCardPayment;
>>     private EmailGateway emailGateway;
>>
>>     public void setCreditCardPayment(CreditCardPayment creditCardPayment)
>> {
>>         this.creditCardPayment = creditCardPayment;
>>     }
>>
>>     public void setEmailGateway(EmailGateway emailGateway) {
>>         this.emailGateway = emailGateway;
>>     }
>>
>> a context...
>>
>> <beans xmlns="http://www.springframework.org/schema/beans";
>>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>        xmlns:sca="http://www.springframework.org/schema/sca";
>>        xsi:schemaLocation="http://www.springframework.org/schema/beans
>>
>> http://www.springframework.org/schema/beans/spring-beans.xsd";>
>>
>>     <bean id="Payment" class="payment.PaymentImpl">
>>         <property name="creditCardPayment"
>> ref="creditCardPaymentReference"/>
>>         <property name="emailGateway" ref="EmailGateway"/>
>>     </bean>
>>
>>     <bean id="EmailGateway"
>> class="scatours.emailgateway.EmailGatewayImpl">
>>     </bean>
>>
>> </beans>
>>
>> and a composite component...
>>
>>     <component name="PaymentComponent">
>>         <implementation.spring location="Payment-context.xml"/>
>>         <service name="Payment">
>>             <interface.wsdl interface="
>> http://www.tuscanyscatours.com/Payment/#wsdl.interface(Payment)<http://www.tuscanyscatours.com/Payment/#wsdl.interface%28Payment%29>"
>> />
>>             <binding.ws uri="http://localhost:8080/Payment"; wsdlElement="
>> http://www.tuscanyscatours.com/Payment/#wsdl.service(PaymentService)<http://www.tuscanyscatours.com/Payment/#wsdl.service%28PaymentService%29>
>> "/>
>>         </service>
>>         <reference name="creditCardPaymentReference">
>>             <binding.ws uri="http://localhost:8081/CreditCardPayment"/>
>>         </reference>
>>     </component>
>>
>> Now the introspection that goes on inside SpringXMLComponentTypeLoader [2]
>> struggles as it doesn't have access to the information from the SCDL. It
>> introspects the bean to try and decide which fields shoulf be references and
>> which should be properties and it can't tell the difference. What I think
>> should be happing is that it should be looking back at the component in the
>> SCDL to see what has actually been defined as a reference and what has been
>> defined as a service and using this information to build the component type.
>> However there is a lot of code here so I'm loooking for someone familiar
>> with the implementation.spring code to tell me what I've missed.
>>
>> Regards
>>
>> Simon
>>
>> [1]
>> http://svn.apache.org/repos/asf/tuscany/sandbox/travelsample/chapter-06/payment-spring-contribution/
>> [2]
>> http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringXMLComponentTypeLoader.java
>>
>
>
>
> --
> Thanks & Regards,
> Ramkumar Ramalingam
>

Hi Ram

I don't remember seeing that error. Why do you think that it will be
produced?

Simon

Reply via email to