You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Amila Chinthaka Suriarachchi (JIRA)" <ji...@apache.org> on 2007/06/11 22:54:26 UTC

[jira] Commented: (AXIS2-2778) WSDL2Java Is Oddly Naming Exceptions

    [ https://issues.apache.org/jira/browse/AXIS2-2778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12503617 ] 

Amila Chinthaka Suriarachchi commented on AXIS2-2778:
-----------------------------------------------------

hi,
Can you try out with a nighly build? 
I generate the code for the method you have given below and it looks like this
              public  xwsinterop.soapwsdl.faults.ThrowMultipleAppFaultsResponse ThrowMultipleAppFaults(

                            xwsinterop.soapwsdl.faults.ThrowMultipleAppFaults throwMultipleAppFaults70)
                        

                    throws java.rmi.RemoteException
                    
                    
                        ,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_ArrayOfInt32Fault_FaultMessage
                        ,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_ArrayOfStringFault_FaultMessage
                        ,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_AppDerivedFaultFault_FaultMessage
                        ,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_StringFault_FaultMessage
                        ,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_AppStringFaultFault_FaultMessage
                        ,org.tempuri.IAppFaultsService_ThrowAppComplexFault_AppComplexFaultFault_FaultMessage
                        ,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_Int32Fault_FaultMessage
                        ,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_AppBaseFaultFault_FaultMessage
                        ,org.tempuri.IAppFaultsService_ThrowMultipleAppFaults_AppEmptyFaultFault_FaultMessage{


the exceptin suffix has removed due to a change after 1.2
Here the fault class names are formed using the MessageNames not using the method names.
i.e in axis 1.2 a fault class name is formed using the message part + Exception suffix.

for an instance the 
exception IAppFaultsService_ThrowMultipleAppFaults_ArrayOfInt32Fault_FaultMessageException
corresponds to the message 
IAppFaultsService_ThrowMultipleAppFaults_ArrayOfInt32Fault_FaultMessage

and the ThrowMultipleAppFaults operation has all those fault elements declared.

Can you attach your sample wsdl file?






> 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
>
> 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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org