Hi.

I need to pass a bean or complex type (array or map of simple types) as a 
parameter to an invocation in a dynamic client.
Anyone has an idea how to do that?

This is the client code:
----------------------------
Client client = new Client(new URL("...."));
String[] test = new String[]{"test1", "test2"};
Object[] results = client.invoke("testArray", new Object[]{test});
----------------------------

This is the service method signature:
----------------------------
public String[] testArray(String[] a);
----------------------------

This is the exception that I get:
----------------------------
org.codehaus.xfire.fault.XFireFault: Unable to write 
'[Ljava.lang.String;@e1d5ea' [[Ljava.lang.String;]. Type is unknown.
        at 
org.codehaus.xfire.aegis.type.basic.ObjectType.handleNullType(ObjectType.java:234)
        at 
org.codehaus.xfire.aegis.type.basic.ObjectType.writeObject(ObjectType.java:169)
        at 
org.codehaus.xfire.aegis.AegisBindingProvider.writeParameter(AegisBindingProvider.java:200)
        at 
org.codehaus.xfire.service.binding.AbstractBinding.writeParameter(AbstractBinding.java:273)
        at 
org.codehaus.xfire.service.binding.WrappedBinding.writeMessage(WrappedBinding.java:89)
        at 
org.codehaus.xfire.soap.SoapSerializer.writeMessage(SoapSerializer.java:80)
        at 
org.codehaus.xfire.transport.http.HttpChannel.writeWithoutAttachments(HttpChannel.java:56)
        at 
org.codehaus.xfire.transport.http.CommonsHttpMessageSender.getByteArrayRequestEntity(CommonsHttpMessageSender.java:313)
        at 
org.codehaus.xfire.transport.http.CommonsHttpMessageSender.send(CommonsHttpMessageSender.java:251)
        at 
org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:123)
        at 
org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
        at 
org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
        at 
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
        at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75)
        at org.codehaus.xfire.client.Client.invoke(Client.java:335)
        at org.codehaus.xfire.client.Client.invoke(Client.java:349)
----------------------------

Thanks in advance,
Tudor

Reply via email to