XFire Dynamic Client怎么调用传对象的service方法

时间:2008-05-09 11:16:54   来源:论坛整理  作者:  编辑:chinaitzhe
User user=new User( "1111 ", "1234 ");
Client client=new Client(new URL( "http://localhost:8080/XFireStudy/services/IHelloWorldService?wsdl "));
Object result[]=client.invoke( "HelloWorld ", new Object[]{user});
System.out.println(result[0]);

我的HelloWorld接受一个user对象,可这使用出现下列异常

Exception in thread "main " org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException
at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:83)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
at org.codehaus.xfire.client.Client.invoke(Client.java:336)
at org.codehaus.xfire.client.Client.invoke(Client.java:368)
at client.SimpleClient.main(SimpleClient.java:18)
Caused by: java.lang.NullPointerException
at org.codehaus.xfire.aegis.type.basic.ObjectType.writeObject(ObjectType.java:192)
at org.codehaus.xfire.aegis.AegisBindingProvider.writeParameter(AegisBindingProvider.java:229)
at org.codehaus.xfire.service.binding.AbstractBinding.writeParameter(AbstractBinding.java:273)
at org.codehaus.xfire.service.binding.WrappedBinding.writeMessage(WrappedBinding.java:90)
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:422)
at org.codehaus.xfire.transport.http.CommonsHttpMessageSender.send(CommonsHttpMessageSender.java:360)
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:79)
... 4 more

简单类型,比如new Object[]{ "123 "}的方法就可以,我已经配置了相应的aegis文件,不用dynamic client访问user对象为参数的service方法是没有问题的
网友回复:我知道webservice包括corba一般只支持基本数据类型,楼主可以将对象转换成List或者数组传递过去
网友回复:webservice包括corba一般只支持基本数据类型,
关键字:XFire,Dynamic,Client,调用,对象,service,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面