Writing to the list to maybe get some clues/help on an issue.
I am currently trying to develop a set of web services using Axis / Tomcat 4 as part of a larger web application (another servlet). Everything went quite fine until I faced a problem when I wanted one of the parameters of a method to be a primitive int array as an ouput parameter.
I can't manage to explain my config (wsdd) file or java source files I want such an out parameter.
For example, let's say I have a public method WS_MakeSomething in a java class named Service defined like the following :
public class Service {
public int WS_MakeSomething(int a, int[] array) {
...
}
}I'd like this method to return an int value and consider the array parameter as an output parameter in which I could put some data according to the behaviour of the method. I could not find any Holder class for such a type.
I put the matching compilated class in my webapps / WEB-INF servlet directory (I pass over the web.xml config file for this) and edit my server-config.wsdd config file to define my service (I just put the interesting part, at least I hope it is interesting). :
<service name="Service" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="request"/>
<parameter name="className" value="Service"/>
<operation name="WS_MakeSomething">
<parameter name="a" mode="IN"/>
<parameter name="array" mode="OUT"/>
</operation>
</service>
And after restarting Tomcat, when I try to access the automatically generated WSDL with http://myserver:8081/Service?wsdl , I get the nice following error :
"Illegal argument passed to ParameterDesc.setJavaType. The java type [I does not match the mode out"
From what I understand Axis is not really happy to read my wsdd file where it's asked to set a primitive array as an output parameter.
I think I know how to create a Bean and wrap this array in something like MyIntArrayHolder but I just consider this a bit complicated just to get an output int array.
So, I am wrong wanting my int[] to be an output and do I need to write my Bean Holder, or is there something else I missed ?
Thanks in advance if any answers.
-- Lisurc
