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]

Reply via email to