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]

Reply via email to