[ 
http://issues.apache.org/jira/browse/AXIS-2424?page=comments#action_12376188 ] 

Olaf Danne commented on AXIS-2424:
----------------------------------

You can now find two more files:
- Axis_2424_Test.java : the "endpoint interface" (hope this is what you mean), 
defining two test methods
- Axis_2424_TestImpl.java : contains the implementation of these methods. Note 
that these are dummy methods only (not a fully functional soap service), we 
only want to show the Java2WSDL / WSDL2Java errors.

Another information might be useful for you: We went through the Axis1.3 source 
files (taken from axis-src-1_3.zip) and found a way to avoid the error with the 
arrays of primitive data types: 
In the class 
src\org\apache\axis\wsdl\fromJava\Types.java
we changed line 414:

if ((qname == null)    // before change
if ((qname == null) || (type.getName().startsWith("["))    // after change

With this additional check it is ensured that the methods to build the xml 
expressions for the arrays of primitive data types (like "ArrayOf_xsd_int" for 
the type int[], where type.getName() is "[I") are called in the correct way, 
which was not the case before. This might be a quick and dirty solution, but it 
works, and it does not seem to have any side effects (we compared the resulting 
wsdl's, and only the relevant lines were affected).

Regards,
Olaf

> Java2WSDL and again WSDL2Java on the created wsdl modify the code irreversably
> ------------------------------------------------------------------------------
>
>          Key: AXIS-2424
>          URL: http://issues.apache.org/jira/browse/AXIS-2424
>      Project: Apache Axis
>         Type: Bug

>   Components: WSDL processing
>     Versions: 1.3
>  Environment: Windows 2000, Java 1.4.2_04
>     Reporter: Dr. Friedemann Weik
>  Attachments: Axis_2424.zip
>
> A Java class containing definitions like:
>   private int[] arrPossibleDestPenalties;
>   private java.lang.Boolean bStationBefore;
> without the code generated by WSDL2Java creates a wsdl with
>      <element name="arrPossibleDestPenalties" nillable="true" 
> type="impl:ArrayOf_xsd_int"/>
>      <element name="BStationBefore" nillable="true" type="soapenc:boolean"/>
> Using this generated wsdl and creating the Java files back by WSDL2Java 
> together with the generated methods, I will find:
>   private int[] arrPossibleDestPenalties;
>   private java.lang.Boolean BStationBefore;
> thus creating the right definition for int[] but changing the name of the 
> variable from bStationBefore to BStationBefore. If I correct the modified 
> name back to its original, wherever it appears, compile the Java-files and do 
> the Java2WSDL again, I receive the following:
>      <element name="arrPossibleDestPenalties" nillable="true" type="xsd:int"/>
>      <element name="bStationBefore" nillable="true" type="soapenc:boolean"/>
> Using this generated wsdl and creating the Java files back by WSDL2Java 
> together with the generated methods, I will find:
>   private java.lang.Integer arrPossibleDestPenalties;
>   private java.lang.Boolean bStationBefore;
> Which means:
> - a pure Java file with Java2WSDL and WSDL2Java will modify the names
> - a generated Java file with Java2WSDL and WSDL2Java will modify the int[] to 
> Integer (not as array!).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to