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
>
>
>
>
>
>