WSDL2Java Is Oddly Naming Exceptions
------------------------------------
Key: AXIS2-2778
URL: https://issues.apache.org/jira/browse/AXIS2-2778
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: Tools
Environment: Windows
Reporter: Shawn Dever
We have reduced our problem to a simple test case.
SCENARIO
We have a web service with two methods: "Method1" and "Method2".
Each method can throw an exception called "CustomException".
We use the WSDL2Java to build our Java client proxy.
The exception is generated with a name such as "Method1_CustomException". In
the client proxy code, both methods now throw/catch "Method1_CustomException".
(Notice how the "Method1" is used in the name of the exception.)
PROBLEM
When the web service designer adds a new method, say "Method3", and we
regenerate the client proxy, the exception names changes to
"Method3_CustomException". This forces us to modify our existing client code
to recognize the name change to the exception.
MORE INFORMATION
We are using the latest Axis 2 code.
The web service is written using Microsoft .NET WCF/Indigo.
.Net clients are working fine.
We tried WSDL2Java on the WCF Interop Endpoints (see URL below) and the proxy
code looks like it will suffer the same problem.
http://131.107.72.15/SoapWsdl_Faults_DocLitW_Service_Indigo/AppFaultsService.svc?wsdl
In our test web service, we created a method called AAAAExceptions that threw
all the exceptions. We thought that by doing this, all the proxy exceptions
would be named with this method's name such as: AAAAException_CustomException.
Oddly enough, this worked for all but one of the exceptions.
Here is an example of what we do and see:
-------------------------
set JAVA_HOME=C:\Program Files\Java\jre1.5.0_09
set AXIS2_HOME=C:\downloads\ApacheAxis2\1.2\unzipped\axis2-1.2
%AXIS2_HOME%\bin\wsdl2java --unpack-classes -uri
http://131.107.72.15/SoapWsdl_Faults_DocLitW_Service_Indigo/AppFaultsService.svc?wsdl
-------------------------
Using the above command, the resulting interface for the Interopt test looks
like this:
public interface AppFaultsService {
...
public xwsinterop.soapwsdl.faults.ThrowStringFaultResponse
ThrowStringFault(xwsinterop.soapwsdl.faults.ThrowStringFault throwStringFault10)
throws
java.rmi.RemoteException,
org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_StringFault_FaultMessageException;
...
public xwsinterop.soapwsdl.faults.ThrowMultipleAppFaultsResponse
ThrowMultipleAppFaults(xwsinterop.soapwsdl.faults.ThrowMultipleAppFaults
throwMultipleAppFaults34)
throws
java.rmi.RemoteException
,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_ArrayOfInt32Fault_FaultMessageException
,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_ArrayOfStringFault_FaultMessageException
,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_AppDerivedFaultFault_FaultMessageException
,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_StringFault_FaultMessageException
,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_AppStringFaultFault_FaultMessageException
,org.tempuri.IAppFaultsService_ThrowAppComplexFault_AppComplexFaultFault_FaultMessageException
,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_Int32Fault_FaultMessageException
,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_AppBaseFaultFault_FaultMessageException
,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_AppEmptyFaultFault_FaultMessageException;
The ThrowStringFault method and ThrowMulipleAppFaults method both throw as
StringFault. But notice how the exception name has one of the method names
(ThrowMultipleAppFaults) in it:
IAppFaultsService_ThrowMultipleAppFaults_StringFault_FaultMessageException.
Here is an example of what we seeing from our simple test web service. The
MyMethod1 throw an exception with MyMethod2 in the name.
public myproduct.mycompany.MyMethod1Response MyMethod1(
myproduct.mycompany.MyMethod1 myMethod10)
throws java.rmi.RemoteException
,org.tempuri.WSTest_MyMethod2_CustomExceptionFault_FaultMessageException;
Thank you.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]