Hi Simon, I have set a break point in Java2WSDLHelper.processNoArgAndVoidReturnMethods() at line 341. But, with my test case, I am not hitting the condition where types is null as described in the JIRA comments in TUSCANY-2059.
++Vamsi On Tue, Apr 1, 2008 at 3:22 PM, Simon Nash <[EMAIL PROTECTED]> wrote: > Comments inline. > > Simon > > Raymond Feng wrote: > > Hi, > > > > The message is a bit misleading and it complains that a fault from WS > > stack cannot be mapped to a java checked exception. The cause of your > > issue is: > > > >> Caused by: org.apache.axis2.AxisFault: An unknown message label has > been > >> encountered: In > >> at > >> > org.apache.axis2.description.OutOnlyAxisOperationClient.getMessageContext( > >> > >> OutOnlyAxisOperation.java:215) > >> at > > > > I ran into a similar issue before. The problem is that Axis2 maps a java > > method such as void doSomthing(...) into an oneway WSDL operation. This > > behavior is not in line with SCA which requires @Oneway annotation. If > > you add @Oneway to the method, the problem will be gone. > > > This is the same as TUSCANY-2059. The behaviour that Raymond > describes is the default for Axis2. However, Tuscany has code > in Java2WSDLHelper.processNoArgAndVoidReturnMethods() to fix > up the Axis2 Java to WSDL mapping to correct this Axis2 problem. > Unfortunately, this code is currently not invoked when all > methods of an interface have null argument lists and void > return types. See TUSCANY-2059 for more details. > > Adding @OneWay works around the problem but it changes the > semantic behavior. It prevents server-side exceptions from > being thrown back to the client, and it allows the client to > proceed before the server method has completed. It also > requires modifying the existing Java interface, which isn't > always possible. This may be useful as a temporary workaround, > but we need to fix the underlying problem. > > Vamsi, are you interested in producing a patch for > Java2WSDLHelper.processNoArgAndVoidReturnMethods() to fix this > problem? The comments for TUSCANY-2059 give some suggestions > for what is neeeded. > > Simon > > > Thanks, > > Raymond > > -------------------------------------------------- > > From: "Vamsavardhana Reddy" <[EMAIL PROTECTED]> > > Sent: Monday, March 31, 2008 6:38 AM > > To: <tuscany-dev@ws.apache.org> > > Subject: Strange problem with conversational service when using > binding.ws > > > >> Here is a strange problem I am running into. > >> > >> I have a conversational service with all the operations returning void. > >> When I use binding.sca, my test runs fine. But, when I change the > >> binding > >> to binding.ws, I hit an org.osoa.sca.ServiceRuntimeException: "Target > >> fault > >> type cannot be resolved: null". But, if a add another method to my > >> service > >> to return a String (non-void basically), then my test runs fine even > >> though > >> this newly added method is not invoked!! Stack trace from the failure > is > >> given below. > >> > >> org.osoa.sca.ServiceRuntimeException: Target fault type cannot be > >> resolved: > >> null > >> at > >> > org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke > >> > >> (DataTransformationInterceptor.java:134) > >> at > org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke( > >> JDKInvocationHandler.java:286) > >> at > org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke( > >> JDKInvocationHandler.java:154) > >> at $Proxy26.operation1(Unknown Source) > >> at org.apache.tuscany.sca.mytest.MyConvClientImpl.runConversation( > >> MyConvClientImpl.java:21) > >> 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:109) > >> at > >> > org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke > ( > >> > >> PassByValueInterceptor.java:108) > >> 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:108) > >> at > org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke( > >> JDKInvocationHandler.java:286) > >> at > org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke( > >> JDKInvocationHandler.java:154) > >> at $Proxy25.runConversation(Unknown Source) > >> at > >> > org.apache.tuscany.sca.itest.conversational.ConversationWSDLMyTestCase.testConversation > >> > >> (ConversationWSDLMyTestCase.java:68) > >> 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.junit.internal.runners.TestMethodRunner.executeMethodBody( > >> TestMethodRunner.java:99) > >> at org.junit.internal.runners.TestMethodRunner.runUnprotected( > >> TestMethodRunner.java:81) > >> at org.junit.internal.runners.BeforeAndAfterRunner.runProtected( > >> BeforeAndAfterRunner.java:34) > >> at org.junit.internal.runners.TestMethodRunner.runMethod( > >> TestMethodRunner.java:75) > >> at > >> org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java > >> :45) > >> at > org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod( > >> TestClassMethodsRunner.java:75) > >> at org.junit.internal.runners.TestClassMethodsRunner.run( > >> TestClassMethodsRunner.java:36) > >> at org.junit.internal.runners.TestClassRunner$1.runUnprotected( > >> TestClassRunner.java:42) > >> at org.junit.internal.runners.BeforeAndAfterRunner.runProtected( > >> BeforeAndAfterRunner.java:34) > >> at org.junit.internal.runners.TestClassRunner.run( > TestClassRunner.java > >> :52) > >> 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.apache.axis2.AxisFault: An unknown message label has > been > >> encountered: In > >> at > >> > org.apache.axis2.description.OutOnlyAxisOperationClient.getMessageContext( > >> > >> OutOnlyAxisOperation.java:215) > >> at > >> > org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingInvoker.invokeTarget( > >> Axis2BindingInvoker.java:120) > >> at > org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingInvoker.invoke( > >> Axis2BindingInvoker.java:89) > >> at > >> > org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke > >> > >> (DataTransformationInterceptor.java:78) > >> ... 36 more > >> > >> Has anyone reported this problem? Otherwise I will create a JIRA. > >> > >> ++Vamsi > >> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >