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
