Don't know what changed in these three days, but, it is working now :)

++Vamsi

On Sat, May 24, 2008 at 4:49 PM, Vamsavardhana Reddy <[EMAIL PROTECTED]>
wrote:

> Attached generics-problem.patch to recreate the problem.
>
> ++Vamsi
>
>
> On Sat, May 24, 2008 at 4:30 PM, Vamsavardhana Reddy <[EMAIL PROTECTED]>
> wrote:
>
>>
>>
>> On Fri, May 23, 2008 at 11:53 PM, Raymond Feng <[EMAIL PROTECTED]>
>> wrote:
>>
>>> Hi,
>>>
>>> It's not clear from the SCA spec how generics impacts the interface
>>> mapping. We need some clarifications there.
>>>
>>> The JAXWS 2.1 spec uses the erased type and only honor the type argument
>>> in Collection. At this moment, Tuscany supports the following case:
>>>
>>> @Remotable
>>> public interface MyHelloService extends HelloService<String> {
>>> }
>>>
>>> And use MyHelloService as the service interface for HelloServiceImpl.
>>
>> Hmm...  I tried this part and it does not seem to work.
>> SCADomain.newInstance() is throwing an exception.  Stack trace given below:
>>
>> org.osoa.sca.ServiceRuntimeException:
>> org.osoa.sca.ServiceRuntimeException:
>> org.apache.tuscany.sca.core.assembly.ActivationException:
>> java.lang.NullPointerException
>>     at
>> org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:276)
>>     at
>> org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.java:70)
>>     at
>> org.apache.tuscany.sca.itest.DatabindingTestCase.setUp(DatabindingTestCase.java:39)
>>     at junit.framework.TestCase.runBare(TestCase.java:132)
>>     at junit.framework.TestResult$1.protect(TestResult.java:110)
>>     at junit.framework.TestResult.runProtected(TestResult.java:128)
>>     at junit.framework.TestResult.run(TestResult.java:113)
>>     at junit.framework.TestCase.run(TestCase.java:124)
>>     at junit.framework.TestSuite.runTest(TestSuite.java:232)
>>     at junit.framework.TestSuite.run(TestSuite.java:227)
>>     at
>> org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:35)
>>     at
>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
>>     at
>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>>     at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
>>     at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
>>     at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
>>     at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
>> Caused by: org.osoa.sca.ServiceRuntimeException:
>> org.apache.tuscany.sca.core.assembly.ActivationException:
>> java.lang.NullPointerException
>>     at
>> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:239)
>>     at
>> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(DefaultSCADomain.java:113)
>>     at
>> org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:242)
>>     ... 16 more
>> Caused by: org.apache.tuscany.sca.core.assembly.ActivationException:
>> java.lang.NullPointerException
>>     at
>> org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl.activate(CompositeActivatorImpl.java:986)
>>     at
>> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:237)
>>     ... 18 more
>> Caused by: java.lang.NullPointerException
>>     at
>> org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLOperationIntrospectorImpl.getOperation(WSDLOperationIntrospectorImpl.java:212)
>>     at
>> org.apache.tuscany.sca.interfacedef.wsdl.java2wsdl.Java2WSDLHelper.createWSDLInterfaceContract(Java2WSDLHelper.java:246)
>>     at
>> org.apache.tuscany.sca.binding.ws.axis2.Axis2ReferenceBindingProvider.<init>(Axis2ReferenceBindingProvider.java:56)
>>     at
>> org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingProviderFactory.createReferenceBindingProvider(Axis2BindingProviderFactory.java:66)
>>     at
>> org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingProviderFactory.createReferenceBindingProvider(Axis2BindingProviderFactory.java:46)
>>     at
>> org.apache.tuscany.sca.provider.DefaultProviderFactoryExtensionPoint$LazyBindingProviderFactory.createReferenceBindingProvider(DefaultProviderFactoryExtensionPoint.java:230)
>>     at
>> org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl.addReferenceBindingProvider(CompositeActivatorImpl.java:262)
>>     at
>> org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl.activate(CompositeActivatorImpl.java:142)
>>     at
>> org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl.activate(CompositeActivatorImpl.java:982)
>>     ... 19 more
>>
>>
>>>
>>> I don't think it's wise to try to cover other variations before we get it
>>> clarified by the spec.
>>>
>>> Thanks,
>>> Raymond
>>> --------------------------------------------------
>>> From: "Vamsavardhana Reddy" <[EMAIL PROTECTED]>
>>> Sent: Friday, May 23, 2008 10:42 AM
>>> To: <tuscany-dev@ws.apache.org>
>>> Subject: TransformationException when using java interface definition
>>> with generics
>>>
>>>
>>>  Can someone point to me what I am doing wrong or if it is a problem in
>>>> Tuscany?  Details follow...
>>>>
>>>> I have the following service interface:
>>>> @Remotable
>>>> public interface HelloService<E> {
>>>>   public E getGreetings(E name);
>>>> }
>>>> --------
>>>> The following is the service implementation:
>>>> @Service(HelloService.class)
>>>> public class HelloServiceImpl implements HelloService<String> {
>>>>
>>>>   public String getGreetings(String name) {
>>>>       return "Hello "+name;
>>>>   }
>>>> }
>>>> --------
>>>> The following is the client interface that invokes the service:
>>>> public interface HelloServiceClient<E> {
>>>>   E getGreetingsForward(E name);
>>>> }
>>>> --------
>>>> The following is the client implementation:
>>>> @Service(HelloServiceClient.class)
>>>> public class HelloServiceClientImpl implements
>>>> HelloServiceClient<String> {
>>>>
>>>>   private HelloService<String> service;
>>>>
>>>>   @Reference
>>>>   public void setHelloService(HelloService<String> service) {
>>>>       this.service = service;
>>>>   }
>>>>
>>>>   public String getGreetingsForward(String name) {
>>>>       return service.getGreetings(name);
>>>>   }
>>>> }
>>>> --------
>>>> I have a HelloService component and two HelloServiceClient components in
>>>> my
>>>> composite (given below):
>>>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
>>>>          xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance";
>>>>          name="HelloService">
>>>>
>>>>   <!-- Clients to test the service -->
>>>>   <component name="HelloServiceClientWSComponent">
>>>>       <implementation.java
>>>> class="org.apache.tuscany.sca.itest.impl.HelloServiceClientImpl" />
>>>>       <reference name="helloService">
>>>>           <interface.java
>>>> interface="org.apache.tuscany.sca.itest.HelloService"/>
>>>>           <binding.ws uri="http://localhost:8080/hs-ep1"/>
>>>>       </reference>
>>>>   </component>
>>>>   <component name="HelloServiceClientSCAComponent">
>>>>       <implementation.java
>>>> class="org.apache.tuscany.sca.itest.impl.HelloServiceClientImpl" />
>>>>       <reference name="helloService" target="HelloServiceComponent">
>>>>           <binding.sca/>
>>>>       </reference>
>>>>   </component>
>>>>
>>>>   <!-- Components used to implement the services -->
>>>>   <component name="HelloServiceComponent">
>>>>       <implementation.java
>>>> class="org.apache.tuscany.sca.itest.impl.HelloServiceImpl"/>
>>>>       <service name="HelloService">
>>>>           <interface.java
>>>> interface="org.apache.tuscany.sca.itest.HelloService"/>
>>>>           <binding.ws uri="http://localhost:8080/hs-ep1"/>
>>>>           <binding.sca/>
>>>>       </service>
>>>>   </component>
>>>> </composite>
>>>> --------
>>>> The following is the code I am using to invoke the service via client
>>>> components:
>>>>       domain = SCADomain.newInstance("hello.composite");
>>>>       String name = "Me <String> SCA";
>>>>       HelloServiceClient<String> helloServiceClient =
>>>> domain.getService(HelloServiceClient.class,
>>>> "HelloServiceClientSCAComponent");
>>>>       String resp = helloServiceClient.getGreetingsForward(name);
>>>>       System.out.println(resp);
>>>>
>>>>       name = "Me <String> WS";
>>>>       helloServiceClient = domain.getService(HelloServiceClient.class,
>>>> "HelloServiceClientWSComponent");
>>>>       resp = helloServiceClient.getGreetingsForward(name);
>>>>       System.out.println(resp);
>>>> --------
>>>>
>>>> It works fine when I invoke the service using the client component that
>>>> uses
>>>> SCA binding to connect to the service.  I get the following exception
>>>> when I
>>>> use the client component that uses WS binding.
>>>>
>>>> May 23, 2008 11:04:50 PM
>>>>
>>>> org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceInOutSyncMessageReceiver
>>>> invokeBusinessLogic
>>>> SEVERE: org.apache.tuscany.sca.databinding.TransformationException: No
>>>> path
>>>> found for the transformation: org.apache.axiom.om.OMElement->null
>>>> org.osoa.sca.ServiceRuntimeException:
>>>> org.apache.tuscany.sca.databinding.TransformationException: No path
>>>> found
>>>> for the transformation: org.apache.axiom.om.OMElement->null
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.core.invocation.RuntimeWireInvoker.invoke(RuntimeWireInvoker.java:119)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.core.invocation.RuntimeWireInvoker.invoke(RuntimeWireInvoker.java:85)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.core.invocation.RuntimeWireInvoker.invoke(RuntimeWireInvoker.java:79)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.invoke(RuntimeWireImpl.java:138)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceProvider.invokeTarget(Axis2ServiceProvider.java:669)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceInOutSyncMessageReceiver.invokeBusinessLogic(Axis2ServiceInOutSyncMessageReceiver.java:68)
>>>>   at
>>>>
>>>> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:42)
>>>>   at
>>>>
>>>> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
>>>>   at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
>>>>   at
>>>>
>>>> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
>>>>   at
>>>> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120)
>>>>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>>>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>>>>   at
>>>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
>>>>   at
>>>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
>>>>   at
>>>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>>>>   at
>>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
>>>>   at
>>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>>>>   at org.mortbay.jetty.Server.handle(Server.java:324)
>>>>   at
>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
>>>>   at
>>>>
>>>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
>>>>   at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
>>>>   at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>>>>   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
>>>>   at
>>>>
>>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
>>>>   at org.apache.tuscany.sca.core.work.Jsr237Work.run(Jsr237Work.java:63)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.core.work.ThreadPoolWorkManager$DecoratingWork.run(ThreadPoolWorkManager.java:221)
>>>>   at
>>>>
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>>>   at
>>>>
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>>>>   at java.lang.Thread.run(Thread.java:595)
>>>> Caused by: org.apache.tuscany.sca.databinding.TransformationException:
>>>> No
>>>> path found for the transformation: org.apache.axiom.om.OMElement->null
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.getTransformerChain(MediatorImpl.java:162)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:67)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:181)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:45)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:79)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.transform(DataTransformationInterceptor.java:186)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:76)
>>>>   at
>>>>
>>>> org.apache.tuscany.sca.core.invocation.RuntimeWireInvoker.invoke(RuntimeWireInvoker.java:110)
>>>>   ... 29 more
>>>>
>>>>
>>
>

Reply via email to