[
https://issues.apache.org/jira/browse/AXIS2-2778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12504289
]
Shawn Dever commented on AXIS2-2778:
------------------------------------
Amila,
I just tested the nightly build (dated June 13th), and it does provide a
workable solution to the problem we are experiencing.
Each method throws its own version of the exception.
MyMethod1 throw org.tempuri.WSTest_MyMethod1_CustomExceptionFault_FaultMessage
and
MyMethod2 throw org.tempuri.WSTest_MyMethod2_CustomExceptionFault_FaultMessage
and
MyMethod3 throw org.tempuri.WSTest_MyMethod3_CustomExceptionFault_FaultMessage
I think our preferred solution would be if all the methods generated the same
CustomExceptionFault (not specific to a method).
MyMethod1 throw org.tempuri.WSTest_CustomExceptionFault_FaultMessage
and
MyMethod2 throw org.tempuri.WSTest_CustomExceptionFault_FaultMessage
and
MyMethod3 throw org.tempuri.WSTest_CustomExceptionFault_FaultMessage
But the solution you provided will allow the web service to continue to evolve
without breaking our client code.
Thank you for the fast turn around to this problem.
Shawn
> 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
> Assignee: Amila Chinthaka Suriarachchi
> Priority: Blocker
> Attachments: Program.cs, WSTest_wsdl.xml, WSTest_wsdl0.xml
>
>
> 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]