[ 
https://issues.apache.org/jira/browse/AXIS2-3300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12796616#action_12796616
 ] 

Mauro Molinari commented on AXIS2-3300:
---------------------------------------

This is acceptable and is ok for .NET >=2.0 compatibility, however consider 
that in this case the generated WSDL may not be usable to create suitable 
clients by .NET 1.x users. This should be documented in some way, so that if a 
Java developer using Axis2 must write web services that have to be invoked even 
by .NET 1.x clients, he will then be forced to opt for a contract-first 
approach. Actually, this is also the case right now, so the new behaviour 
wouldn't be worse than the current one in any case ;-)

> minOccurs="0" always generated by Java2WSDL - problems with .NET client 
> generation
> ----------------------------------------------------------------------------------
>
>                 Key: AXIS2-3300
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3300
>             Project: Axis2
>          Issue Type: Bug
>          Components: Tools
>    Affects Versions: 1.3
>            Reporter: Mauro Molinari
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-1.4.1.diff
>
>
> When you try to expose a POJO as a webservice, suppose you have two Java 
> methods with the following signatures:
> public Integer a(String, Integer)
> public String b(Integer, String) 
> Java2WSDL adds the minOccurs="0" for each element of each complex type, both 
> for the input parameters and for the output parameters. 
> When generating clients using .NET WebService Studio 2.0, the result is the 
> following:
> - all the generated C# methods input parameters are doubled, except for the 
> string ones: the doubled parameters are booleans whose meaning is: "is the 
> previous parameter specified or not?"
> - all the generated C# methods return parameters are void, except for the 
> string ones
> The actual result are clients with methods like these:
> public void a(string, int, bool);
> public string b(int, bool, string);
> This is obviously a problem, particularly for the "void" return type.
> If I remove minOccurs="0", clients are generated correctly by .NET WebService 
> Studio 2.0.
> The issue is this: why does Java2WSDL always adds minOccurs="0"? If its 
> meaning were "it can be null", I think nillable="true" attribute should be 
> more appropriate... Moreover, if I substitute Integer with int in the 
> original Java class methods, minOccurs="0" is still added by Java2WSDL, even 
> if an int cannot be null.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to