You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@tuscany.apache.org by fahim salim <sa...@gmail.com> on 2008/12/09 13:41:09 UTC
problem with component implementation as composite
Hello All
What I'd like to do is to have two components implemented as composite (like
in simple-bigbank)
CalculatorServiceComponent is implemented by Calculator.composite and
ConversionServiceComponent is implemented by Converter.composite
ConversionService is a reference for CalculatorServiceComponent.
Here is the composite file for this configuration
*<?xml version="1.0" encoding="ISO-8859-15"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
targetNamespace="http://calcul"
xmlns:ca="http://calculator"
xmlns:co="http://converter"
name="Calcul">
<component name="CalculatorServiceComponent">
<implementation.composite name="ca:Calculator"/>
<reference name="ConversionService" target="ConversionServiceComponent">
<binding.sca/>
</reference>
</component>
<component name="ConversionServiceComponent">
<implementation.composite name="co:Converter"/>
</component>
</composite>*
ConversionService offers one method which is *conversionEnEuro()*
*public interface ConversionService {
public double conversionEnEuro(double value);
}*
When I run the application I have the following stack trace error but I
can't understand what is going wrong. It seems that the proxy which is
returned doesn't know how to invoke the method of ConversionService but why
?
class $Proxy6
Caught Exception: null
java.lang.NullPointerException
at
calculator.CalculatorServiceImpl.conversionEnEuro(CalculatorServiceImpl.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:132)
at
org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
at
org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
at
org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
at
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:287)
at
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
at $Proxy6.conversionEnEuro(Unknown Source)
at client.Client.main(Client.java:45)
I have enclosed all the files
Thanks for your help
Fahim
Re: problem with component implementation as composite
Posted by fahim salim <sa...@gmail.com>.
Hello Scott
Yes I have changed it to a public field to see what happens but now I use
a private field with a setter injection
So I have the following:
*private ConversionService conversionService;
/*** setter injection for references ***/
@Reference(name="conversionService", required=true)
public void setConversionService(ConversionService service) {
this.conversionService = service;
}*
but I have the same error ...
2008/12/10 Scott Kurz <sc...@gmail.com>
> Fahim,
>
> Not sure that it should matter, but what about changing:
> public ConversionService conversionService;
> from a public to a private field?
>
> Not sure that that should matter (would have to think)....
>
> Scott
>
>
> On Wed, Dec 10, 2008 at 9:27 AM, fahim salim <sa...@gmail.com> wrote:
>
>> Hello
>>
>> No I have the same error
>>
>> Here is the log I have.
>>
>> *java.lang.NullPointerException
>> at
>> calculator.CalculatorServiceImpl.conversionEnEuro(CalculatorServiceImpl.java:43)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at
>> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:132)
>> at
>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>> at
>> org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
>> at
>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>> at
>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:287)
>> at
>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
>> at $Proxy6.conversionEnEuro(Unknown Source)
>> at client.Client.main(Client.java:45)
>> *
>>
>> 2008/12/10 Scott Kurz <sc...@gmail.com>
>>
>> Fahim,
>>>
>>> So I'd expect you're getting a different error now after switching the
>>> SCDL to:
>>> * <reference name="conversionService"
>>> *
>>> Is that correct? What's the new error?
>>>
>>> Scott
>>>
>>>
>>> On Tue, Dec 9, 2008 at 10:53 AM, fahim salim <sa...@gmail.com> wrote:
>>>
>>>> Hello Scott
>>>>
>>>> Yes it could have been that
>>>> I have made the modification in the SCDL (Calcul.composite) and I have
>>>> replaced the upper case by lowercase 'c' but it doesn't work ...
>>>>
>>>>
>>>>
>>>> 2008/12/9 Scott Kurz <sc...@gmail.com>
>>>>
>>>> Fahim,
>>>>>
>>>>> I wonder if the problem is the case of your reference in SCDL.
>>>>>
>>>>> You have ..
>>>>> * <reference name="ConversionService"
>>>>>
>>>>> *But in the Java impl (CalculatorServiceImpl ) it looks like
>>>>> the reference name is "conversionService" (lowercase 'c').
>>>>>
>>>>> Maybe try that....
>>>>>
>>>>> Scott
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Dec 9, 2008 at 7:41 AM, fahim salim <sa...@gmail.com>wrote:
>>>>>
>>>>>> Hello All
>>>>>>
>>>>>> What I'd like to do is to have two components implemented as composite
>>>>>> (like in simple-bigbank)
>>>>>> CalculatorServiceComponent is implemented by Calculator.composite and
>>>>>> ConversionServiceComponent is implemented by Converter.composite
>>>>>> ConversionService is a reference for CalculatorServiceComponent.
>>>>>>
>>>>>> Here is the composite file for this configuration
>>>>>>
>>>>>> *<?xml version="1.0" encoding="ISO-8859-15"?>
>>>>>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>>>>>> targetNamespace="http://calcul"
>>>>>> xmlns:ca="http://calculator"
>>>>>> xmlns:co="http://converter"
>>>>>> name="Calcul">
>>>>>>
>>>>>> <component name="CalculatorServiceComponent">
>>>>>> <implementation.composite name="ca:Calculator"/>
>>>>>> <reference name="ConversionService"
>>>>>> target="ConversionServiceComponent">
>>>>>> <binding.sca/>
>>>>>> </reference>
>>>>>> </component>
>>>>>>
>>>>>> <component name="ConversionServiceComponent">
>>>>>> <implementation.composite name="co:Converter"/>
>>>>>> </component>
>>>>>>
>>>>>> </composite>*
>>>>>>
>>>>>> ConversionService offers one method which is *conversionEnEuro()*
>>>>>>
>>>>>> *public interface ConversionService {
>>>>>> public double conversionEnEuro(double value);
>>>>>> }*
>>>>>>
>>>>>>
>>>>>>
>>>>>> When I run the application I have the following stack trace error but
>>>>>> I can't understand what is going wrong. It seems that the proxy which is
>>>>>> returned doesn't know how to invoke the method of ConversionService but why
>>>>>> ?
>>>>>>
>>>>>> class $Proxy6
>>>>>> Caught Exception: null
>>>>>> java.lang.NullPointerException
>>>>>> at
>>>>>> calculator.CalculatorServiceImpl.conversionEnEuro(CalculatorServiceImpl.java:43)
>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>> at
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>> at
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>>>> at
>>>>>> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:132)
>>>>>> at
>>>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>>>>>> at
>>>>>> org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
>>>>>> at
>>>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>>>>>> at
>>>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:287)
>>>>>> at
>>>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
>>>>>> at $Proxy6.conversionEnEuro(Unknown Source)
>>>>>> at client.Client.main(Client.java:45)
>>>>>>
>>>>>> I have enclosed all the files
>>>>>>
>>>>>> Thanks for your help
>>>>>>
>>>>>> Fahim
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
Re: problem with component implementation as composite
Posted by Scott Kurz <sc...@gmail.com>.
Fahim,
Not sure that it should matter, but what about changing:
public ConversionService conversionService;
from a public to a private field?
Not sure that that should matter (would have to think)....
Scott
On Wed, Dec 10, 2008 at 9:27 AM, fahim salim <sa...@gmail.com> wrote:
> Hello
>
> No I have the same error
>
> Here is the log I have.
>
> *java.lang.NullPointerException
> at
> calculator.CalculatorServiceImpl.conversionEnEuro(CalculatorServiceImpl.java:43)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:132)
> at
> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
> at
> org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
> at
> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
> at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:287)
> at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
> at $Proxy6.conversionEnEuro(Unknown Source)
> at client.Client.main(Client.java:45)
> *
>
> 2008/12/10 Scott Kurz <sc...@gmail.com>
>
> Fahim,
>>
>> So I'd expect you're getting a different error now after switching the
>> SCDL to:
>> * <reference name="conversionService"
>> *
>> Is that correct? What's the new error?
>>
>> Scott
>>
>>
>> On Tue, Dec 9, 2008 at 10:53 AM, fahim salim <sa...@gmail.com> wrote:
>>
>>> Hello Scott
>>>
>>> Yes it could have been that
>>> I have made the modification in the SCDL (Calcul.composite) and I have
>>> replaced the upper case by lowercase 'c' but it doesn't work ...
>>>
>>>
>>>
>>> 2008/12/9 Scott Kurz <sc...@gmail.com>
>>>
>>> Fahim,
>>>>
>>>> I wonder if the problem is the case of your reference in SCDL.
>>>>
>>>> You have ..
>>>> * <reference name="ConversionService"
>>>>
>>>> *But in the Java impl (CalculatorServiceImpl ) it looks like
>>>> the reference name is "conversionService" (lowercase 'c').
>>>>
>>>> Maybe try that....
>>>>
>>>> Scott
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Dec 9, 2008 at 7:41 AM, fahim salim <sa...@gmail.com> wrote:
>>>>
>>>>> Hello All
>>>>>
>>>>> What I'd like to do is to have two components implemented as composite
>>>>> (like in simple-bigbank)
>>>>> CalculatorServiceComponent is implemented by Calculator.composite and
>>>>> ConversionServiceComponent is implemented by Converter.composite
>>>>> ConversionService is a reference for CalculatorServiceComponent.
>>>>>
>>>>> Here is the composite file for this configuration
>>>>>
>>>>> *<?xml version="1.0" encoding="ISO-8859-15"?>
>>>>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>>>>> targetNamespace="http://calcul"
>>>>> xmlns:ca="http://calculator"
>>>>> xmlns:co="http://converter"
>>>>> name="Calcul">
>>>>>
>>>>> <component name="CalculatorServiceComponent">
>>>>> <implementation.composite name="ca:Calculator"/>
>>>>> <reference name="ConversionService"
>>>>> target="ConversionServiceComponent">
>>>>> <binding.sca/>
>>>>> </reference>
>>>>> </component>
>>>>>
>>>>> <component name="ConversionServiceComponent">
>>>>> <implementation.composite name="co:Converter"/>
>>>>> </component>
>>>>>
>>>>> </composite>*
>>>>>
>>>>> ConversionService offers one method which is *conversionEnEuro()*
>>>>>
>>>>> *public interface ConversionService {
>>>>> public double conversionEnEuro(double value);
>>>>> }*
>>>>>
>>>>>
>>>>>
>>>>> When I run the application I have the following stack trace error but I
>>>>> can't understand what is going wrong. It seems that the proxy which is
>>>>> returned doesn't know how to invoke the method of ConversionService but why
>>>>> ?
>>>>>
>>>>> class $Proxy6
>>>>> Caught Exception: null
>>>>> java.lang.NullPointerException
>>>>> at
>>>>> calculator.CalculatorServiceImpl.conversionEnEuro(CalculatorServiceImpl.java:43)
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>>> at
>>>>> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:132)
>>>>> at
>>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>>>>> at
>>>>> org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
>>>>> at
>>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>>>>> at
>>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:287)
>>>>> at
>>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
>>>>> at $Proxy6.conversionEnEuro(Unknown Source)
>>>>> at client.Client.main(Client.java:45)
>>>>>
>>>>> I have enclosed all the files
>>>>>
>>>>> Thanks for your help
>>>>>
>>>>> Fahim
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
Re: problem with component implementation as composite
Posted by fahim salim <sa...@gmail.com>.
Hello
No I have the same error
Here is the log I have.
*java.lang.NullPointerException
at
calculator.CalculatorServiceImpl.conversionEnEuro(CalculatorServiceImpl.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:132)
at
org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
at
org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
at
org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
at
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:287)
at
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
at $Proxy6.conversionEnEuro(Unknown Source)
at client.Client.main(Client.java:45)
*
2008/12/10 Scott Kurz <sc...@gmail.com>
> Fahim,
>
> So I'd expect you're getting a different error now after switching the SCDL
> to:
> * <reference name="conversionService"
> *
> Is that correct? What's the new error?
>
> Scott
>
>
> On Tue, Dec 9, 2008 at 10:53 AM, fahim salim <sa...@gmail.com> wrote:
>
>> Hello Scott
>>
>> Yes it could have been that
>> I have made the modification in the SCDL (Calcul.composite) and I have
>> replaced the upper case by lowercase 'c' but it doesn't work ...
>>
>>
>>
>> 2008/12/9 Scott Kurz <sc...@gmail.com>
>>
>> Fahim,
>>>
>>> I wonder if the problem is the case of your reference in SCDL.
>>>
>>> You have ..
>>> * <reference name="ConversionService"
>>>
>>> *But in the Java impl (CalculatorServiceImpl ) it looks like
>>> the reference name is "conversionService" (lowercase 'c').
>>>
>>> Maybe try that....
>>>
>>> Scott
>>>
>>>
>>>
>>>
>>> On Tue, Dec 9, 2008 at 7:41 AM, fahim salim <sa...@gmail.com> wrote:
>>>
>>>> Hello All
>>>>
>>>> What I'd like to do is to have two components implemented as composite
>>>> (like in simple-bigbank)
>>>> CalculatorServiceComponent is implemented by Calculator.composite and
>>>> ConversionServiceComponent is implemented by Converter.composite
>>>> ConversionService is a reference for CalculatorServiceComponent.
>>>>
>>>> Here is the composite file for this configuration
>>>>
>>>> *<?xml version="1.0" encoding="ISO-8859-15"?>
>>>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>>>> targetNamespace="http://calcul"
>>>> xmlns:ca="http://calculator"
>>>> xmlns:co="http://converter"
>>>> name="Calcul">
>>>>
>>>> <component name="CalculatorServiceComponent">
>>>> <implementation.composite name="ca:Calculator"/>
>>>> <reference name="ConversionService"
>>>> target="ConversionServiceComponent">
>>>> <binding.sca/>
>>>> </reference>
>>>> </component>
>>>>
>>>> <component name="ConversionServiceComponent">
>>>> <implementation.composite name="co:Converter"/>
>>>> </component>
>>>>
>>>> </composite>*
>>>>
>>>> ConversionService offers one method which is *conversionEnEuro()*
>>>>
>>>> *public interface ConversionService {
>>>> public double conversionEnEuro(double value);
>>>> }*
>>>>
>>>>
>>>>
>>>> When I run the application I have the following stack trace error but I
>>>> can't understand what is going wrong. It seems that the proxy which is
>>>> returned doesn't know how to invoke the method of ConversionService but why
>>>> ?
>>>>
>>>> class $Proxy6
>>>> Caught Exception: null
>>>> java.lang.NullPointerException
>>>> at
>>>> calculator.CalculatorServiceImpl.conversionEnEuro(CalculatorServiceImpl.java:43)
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>>> at
>>>> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:132)
>>>> at
>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>>>> at
>>>> org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
>>>> at
>>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>>>> at
>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:287)
>>>> at
>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
>>>> at $Proxy6.conversionEnEuro(Unknown Source)
>>>> at client.Client.main(Client.java:45)
>>>>
>>>> I have enclosed all the files
>>>>
>>>> Thanks for your help
>>>>
>>>> Fahim
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>
Re: problem with component implementation as composite
Posted by Scott Kurz <sc...@gmail.com>.
Fahim,
So I'd expect you're getting a different error now after switching the SCDL
to:
* <reference name="conversionService"
*
Is that correct? What's the new error?
Scott
On Tue, Dec 9, 2008 at 10:53 AM, fahim salim <sa...@gmail.com> wrote:
> Hello Scott
>
> Yes it could have been that
> I have made the modification in the SCDL (Calcul.composite) and I have
> replaced the upper case by lowercase 'c' but it doesn't work ...
>
>
>
> 2008/12/9 Scott Kurz <sc...@gmail.com>
>
> Fahim,
>>
>> I wonder if the problem is the case of your reference in SCDL.
>>
>> You have ..
>> * <reference name="ConversionService"
>>
>> *But in the Java impl (CalculatorServiceImpl ) it looks like
>> the reference name is "conversionService" (lowercase 'c').
>>
>> Maybe try that....
>>
>> Scott
>>
>>
>>
>>
>> On Tue, Dec 9, 2008 at 7:41 AM, fahim salim <sa...@gmail.com> wrote:
>>
>>> Hello All
>>>
>>> What I'd like to do is to have two components implemented as composite
>>> (like in simple-bigbank)
>>> CalculatorServiceComponent is implemented by Calculator.composite and
>>> ConversionServiceComponent is implemented by Converter.composite
>>> ConversionService is a reference for CalculatorServiceComponent.
>>>
>>> Here is the composite file for this configuration
>>>
>>> *<?xml version="1.0" encoding="ISO-8859-15"?>
>>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>>> targetNamespace="http://calcul"
>>> xmlns:ca="http://calculator"
>>> xmlns:co="http://converter"
>>> name="Calcul">
>>>
>>> <component name="CalculatorServiceComponent">
>>> <implementation.composite name="ca:Calculator"/>
>>> <reference name="ConversionService"
>>> target="ConversionServiceComponent">
>>> <binding.sca/>
>>> </reference>
>>> </component>
>>>
>>> <component name="ConversionServiceComponent">
>>> <implementation.composite name="co:Converter"/>
>>> </component>
>>>
>>> </composite>*
>>>
>>> ConversionService offers one method which is *conversionEnEuro()*
>>>
>>> *public interface ConversionService {
>>> public double conversionEnEuro(double value);
>>> }*
>>>
>>>
>>>
>>> When I run the application I have the following stack trace error but I
>>> can't understand what is going wrong. It seems that the proxy which is
>>> returned doesn't know how to invoke the method of ConversionService but why
>>> ?
>>>
>>> class $Proxy6
>>> Caught Exception: null
>>> java.lang.NullPointerException
>>> at
>>> calculator.CalculatorServiceImpl.conversionEnEuro(CalculatorServiceImpl.java:43)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at
>>> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:132)
>>> at
>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>>> at
>>> org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
>>> at
>>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>>> at
>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:287)
>>> at
>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
>>> at $Proxy6.conversionEnEuro(Unknown Source)
>>> at client.Client.main(Client.java:45)
>>>
>>> I have enclosed all the files
>>>
>>> Thanks for your help
>>>
>>> Fahim
>>>
>>>
>>>
>>>
>>>
>>>
>>
>
Re: problem with component implementation as composite
Posted by fahim salim <sa...@gmail.com>.
Hello Scott
Yes it could have been that
I have made the modification in the SCDL (Calcul.composite) and I have
replaced the upper case by lowercase 'c' but it doesn't work ...
2008/12/9 Scott Kurz <sc...@gmail.com>
> Fahim,
>
> I wonder if the problem is the case of your reference in SCDL.
>
> You have ..
> * <reference name="ConversionService"
>
> *But in the Java impl (CalculatorServiceImpl ) it looks like
> the reference name is "conversionService" (lowercase 'c').
>
> Maybe try that....
>
> Scott
>
>
>
>
> On Tue, Dec 9, 2008 at 7:41 AM, fahim salim <sa...@gmail.com> wrote:
>
>> Hello All
>>
>> What I'd like to do is to have two components implemented as composite
>> (like in simple-bigbank)
>> CalculatorServiceComponent is implemented by Calculator.composite and
>> ConversionServiceComponent is implemented by Converter.composite
>> ConversionService is a reference for CalculatorServiceComponent.
>>
>> Here is the composite file for this configuration
>>
>> *<?xml version="1.0" encoding="ISO-8859-15"?>
>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>> targetNamespace="http://calcul"
>> xmlns:ca="http://calculator"
>> xmlns:co="http://converter"
>> name="Calcul">
>>
>> <component name="CalculatorServiceComponent">
>> <implementation.composite name="ca:Calculator"/>
>> <reference name="ConversionService"
>> target="ConversionServiceComponent">
>> <binding.sca/>
>> </reference>
>> </component>
>>
>> <component name="ConversionServiceComponent">
>> <implementation.composite name="co:Converter"/>
>> </component>
>>
>> </composite>*
>>
>> ConversionService offers one method which is *conversionEnEuro()*
>>
>> *public interface ConversionService {
>> public double conversionEnEuro(double value);
>> }*
>>
>>
>>
>> When I run the application I have the following stack trace error but I
>> can't understand what is going wrong. It seems that the proxy which is
>> returned doesn't know how to invoke the method of ConversionService but why
>> ?
>>
>> class $Proxy6
>> Caught Exception: null
>> java.lang.NullPointerException
>> at
>> calculator.CalculatorServiceImpl.conversionEnEuro(CalculatorServiceImpl.java:43)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at
>> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:132)
>> at
>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>> at
>> org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
>> at
>> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
>> at
>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:287)
>> at
>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
>> at $Proxy6.conversionEnEuro(Unknown Source)
>> at client.Client.main(Client.java:45)
>>
>> I have enclosed all the files
>>
>> Thanks for your help
>>
>> Fahim
>>
>>
>>
>>
>>
>>
>
Re: problem with component implementation as composite
Posted by Scott Kurz <sc...@gmail.com>.
Fahim,
I wonder if the problem is the case of your reference in SCDL.
You have ..
* <reference name="ConversionService"
*But in the Java impl (CalculatorServiceImpl ) it looks like
the reference name is "conversionService" (lowercase 'c').
Maybe try that....
Scott
On Tue, Dec 9, 2008 at 7:41 AM, fahim salim <sa...@gmail.com> wrote:
> Hello All
>
> What I'd like to do is to have two components implemented as composite
> (like in simple-bigbank)
> CalculatorServiceComponent is implemented by Calculator.composite and
> ConversionServiceComponent is implemented by Converter.composite
> ConversionService is a reference for CalculatorServiceComponent.
>
> Here is the composite file for this configuration
>
> *<?xml version="1.0" encoding="ISO-8859-15"?>
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
> targetNamespace="http://calcul"
> xmlns:ca="http://calculator"
> xmlns:co="http://converter"
> name="Calcul">
>
> <component name="CalculatorServiceComponent">
> <implementation.composite name="ca:Calculator"/>
> <reference name="ConversionService"
> target="ConversionServiceComponent">
> <binding.sca/>
> </reference>
> </component>
>
> <component name="ConversionServiceComponent">
> <implementation.composite name="co:Converter"/>
> </component>
>
> </composite>*
>
> ConversionService offers one method which is *conversionEnEuro()*
>
> *public interface ConversionService {
> public double conversionEnEuro(double value);
> }*
>
>
>
> When I run the application I have the following stack trace error but I
> can't understand what is going wrong. It seems that the proxy which is
> returned doesn't know how to invoke the method of ConversionService but why
> ?
>
> class $Proxy6
> Caught Exception: null
> java.lang.NullPointerException
> at
> calculator.CalculatorServiceImpl.conversionEnEuro(CalculatorServiceImpl.java:43)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:132)
> at
> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
> at
> org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
> at
> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
> at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:287)
> at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
> at $Proxy6.conversionEnEuro(Unknown Source)
> at client.Client.main(Client.java:45)
>
> I have enclosed all the files
>
> Thanks for your help
>
> Fahim
>
>
>
>
>
>