[jboss-user] [JBossWS] - passing arrays to ejb3 WS
stefkrech
do-not-reply at jboss.com
Wed Aug 2 10:22:24 EDT 2006
Hello,
i'm using jboss 4.0.4 GA with jbossws 1.0.2 GA
I've deployed a SLSB as Webservice:
| @WebService(name = "ImportEndpointInterface",
| targetNamespace = "myns",
| serviceName = "ImportService")
|
| @SOAPBinding(style = SOAPBinding.Style.RPC)
| @Stateless
| public class ImportBean {
|
|
| @WebMethod
| public String putArray( @WebParam(name = "mystrings") String[] mystrings ) {
| ...
| return "OK";
| }
| ...
| }
|
I'd like to use the WS via DII Client like this:
| ...
| call.setOperationName( new QName( "myns", "putArray") );
| call.setProperty( Call.SOAPACTION_USE_PROPERTY, Boolean.TRUE );
| call.setProperty( Call.SEND_TYPE_ATTR, Boolean.TRUE );
| call.setProperty(Call.OPERATION_STYLE_PROPERTY, "wrapped" );
| call.addParameter( new QName( "", "mystrings" ), XMLType.SOAP_ARRAY, ParameterMode.IN );
| String[] l = new String[] {"a", "b", "c"};
| call.invoke( new Object[] { l } );
|
With simple data-types like "String" evrything works as expected, but when I pass an array like in the above example, the elements of the String[]-Array in the Webservice-method look like this: <item>a</item>, <item>b</item>" and <item>c</item>- not just "a", "b" and "c".
The transmitted message looks like this:
| <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
| <soapenv:Body>
| <putArray xmlns="myns">
| <mystrings xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns="">
| <item>a</item>
| <item>b</item>
| <item>c</item>
| </mystrings>
| </putArray>
| </soapenv:Body>
| </soapenv:Envelope>
|
i use the wsdl which was generated during deployment to create the Service-object with the ServiceFactory.
here an exerpt from the generated file:
| <message name="ImportEndpointInterface_putArray">
| <part name="mystrings" type="xsd:NMTOKENS"/>
| </message>
|
it makes no difference when I use the XMLType.XSD_NMTOKENS for the addParameter-call:
| call.addParameter( new QName( "", "mystrings" ), XMLType.XSD_NMTOKENS, ParameterMode.IN );
|
What am I doing wrong here? I only want to get the strings out of the array without those "item"-markups.
regards,
Stefan
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3962479#3962479
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3962479
More information about the jboss-user
mailing list