axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Scott Waldner (JIRA)" <j...@apache.org>
Subject [jira] Created: (AXIS2-2748) wsdl2java problem generating Faults for WCF service
Date Thu, 31 May 2007 21:05:15 GMT
wsdl2java problem generating Faults for WCF service
---------------------------------------------------

                 Key: AXIS2-2748
                 URL: https://issues.apache.org/jira/browse/AXIS2-2748
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
    Affects Versions: 1.1.1, 1.2
         Environment: Windows XP Professional
            Reporter: Scott Waldner


I am attempting to create a client to communicate with a Web Service written using WCF.  For
the most part this is working well.  However, I am seeing a problem with the way wsdl2java
is generating Faults.  I have produced a simple example where there are two operations on
the web service that look like this (this is the WCF interface):

    public interface IWSTest
    {
        [OperationContract]
        [FaultContract(typeof(CustomException))]
        int MyMethod1();

        [OperationContract]
        [FaultContract(typeof(CustomException))]
        int MyMethod2();
    }

Note that both methods throw the exception "CustomException".  After running wsdl2java I end
up with the following:

  public  int MyMethod2(myproduct.mycompany.MyMethod2 myMethod233)
                    throws java.rmi.RemoteException,
                                 com.metafile.eippadminws.WSTest_MyMethod2_CustomExceptionFault_FaultMessageException;

  public  int MyMethod1(myproduct.mycompany.MyMethod1 myMethod130)
                    throws java.rmi.RemoteException,
                                 com.metafile.eippadminws.WSTest_MyMethod2_CustomExceptionFault_FaultMessageException;

In the generated client code, both methods throw the same exception com.metafile.eippadminws.WSTest_MyMethod2_CustomExceptionFault_FaultMessageException
(good), but the exception name includes the name of the method "MyMethod2" which I think it
should not.  This causes compatibility problems in the following scenario: Suppose a new operation
is added to the WCF web service, call it "MyMethod3" (I consider this type of change to be
an upward compatible change because no existing web service operations have been changed).
 Suppose MyMethod3 also throws CustomException.  In the code generated by wsdl2java, the contract
for MyMethod1 and MyMethod2 now changes.  Instead of throwing com.metafile.eippadminws.WSTest_MyMethod2_CustomExceptionFault_FaultMessageException
it now throws com.metafile.eippadminws.WSTest_MyMethod3_CustomExceptionFault_FaultMessageException.
 My application that was catching this exception now has compile errors.

Some other background information:

WCF doesn't generate one WSDL file - it generates many WSDL files and schema files.  I also
can't figure out how to export these wsdl files from WCF.  However, I can open the WSDL in
a browser and save the WSDL.  I will attach these.  The following output from wsdl2java shows
you the WSDL files that are being read and also shows an message about the Fault not be able
to be overwritten:

----- Start of output -----

Using AXIS2_HOME:   C:\downloads\ApacheAxis2\1.2\unzipped\axis2-1.2
Using JAVA_HOME:    C:\Program Files\Java\jre1.5.0_09
Retrieving document at 'http://scd9600:6000/WSTest?wsdl=wsdl1', relative to 'http://scd9600:6000/WSTest?wsdl'.
Retrieving document at 'http://scd9600:6000/WSTest?wsdl=wsdl0', relative to 'http://scd9600:6000/WSTest?wsdl=wsdl1'.
Retrieving schema at 'http://scd9600:6000/WSTest?xsd=xsd2', relative to 'http://scd9600:6000/WSTest?wsdl=wsdl0'.
Retrieving schema at 'http://scd9600:6000/WSTest?xsd=xsd0', relative to 'http://scd9600:6000/WSTest?wsdl=wsdl0'.
Retrieving schema at 'http://scd9600:6000/WSTest?xsd=xsd1', relative to 'http://scd9600:6000/WSTest?wsdl=wsdl0'.
Retrieving document at 'http://scd9600:6000/WSTest?wsdl=wsdl1', relative to 'http://scd9600:6000/WSTest?wsdl'.
Retrieving document at 'http://scd9600:6000/WSTest?wsdl=wsdl0', relative to 'http://scd9600:6000/WSTest?wsdl=wsdl1'.
Retrieving schema at 'http://scd9600:6000/WSTest?xsd=xsd2', relative to 'http://scd9600:6000/WSTest?wsdl=wsdl0'.
Retrieving schema at 'http://scd9600:6000/WSTest?xsd=xsd0', relative to 'http://scd9600:6000/WSTest?wsdl=wsdl0'.
Retrieving schema at 'http://scd9600:6000/WSTest?xsd=xsd1', relative to 'http://scd9600:6000/WSTest?wsdl=wsdl0'.
May 31, 2007 3:23:27 PM org.apache.axis2.wsdl.codegen.writer.ClassWriter createOutFile
INFO: The 1.2\src\com\metafile\eippadminws\WSTest_MyMethod2_CustomExceptionFault_FaultMessageException.java
file cannot
be overwritten.

----- End of output -----

-- 
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


Mime
View raw message