最近在学习用XFire开发webService,遇到点问题请大帮我看看,谢谢
Client主要代码:
helloClient client = new helloClient();
helloPortType port = client.gethelloHttpPort();
User u = new User();
JAXBElement <String> name = new JAXBElement <String>(new QName("http://service.test.com","value"),String.class,"张三");
u.setName(name);
//u.getName().getValue();//这句话在这里不会报错,但到服务器上后就出错了,传过去的u不为空,但u.getName()返回空
System.out.println(port.example(u));
接口实现类主要代码:
public String example(User u) {
return u.getName().getValue();
//问题就在这里,传过来的u是不为空的,但u.getName()时返回就为空了,而u.getName().getValue将会报错
道底是哪出错了???
}
aegis.xml:
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
<method name="example">
<parameter index="0" componentType="com.test.service.User" />
</method>
</mapping>
</mappings>
会的朋友请教教我,谢谢了!!!
回复于:2009-07-07 16:05:22
你的错误在于,QName的参数给的不对
在你生成客户端自定义对象的时候,属性的上面有网络空间uri和别名的值,填对了就可以了
对我有用[0]丢个板砖[0]引用举报管理TOP
jq985
(jq985)
等 级:
#11楼 得分:0回复于:2009-07-07 16:07:05
比如生成的客户端User对象的name属性是这样写的
@XmlElementRef(name = "name", namespace = "http://bean", type = JAXBElement.class)
protected JAXBElement <String> name;
那么你的QName对象必须这样创建
new QName("http://bean","name");
Client主要代码:
helloClient client = new helloClient();
helloPortType port = client.gethelloHttpPort();
User u = new User();
JAXBElement <String> name = new JAXBElement <String>(new QName("http://service.test.com","value"),String.class,"张三");
u.setName(name);
//u.getName().getValue();//这句话在这里不会报错,但到服务器上后就出错了,传过去的u不为空,但u.getName()返回空
System.out.println(port.example(u));
接口实现类主要代码:
public String example(User u) {
return u.getName().getValue();
//问题就在这里,传过来的u是不为空的,但u.getName()时返回就为空了,而u.getName().getValue将会报错
道底是哪出错了???
}
aegis.xml:
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
<method name="example">
<parameter index="0" componentType="com.test.service.User" />
</method>
</mapping>
</mappings>
会的朋友请教教我,谢谢了!!!
回复于:2009-07-07 16:05:22
你的错误在于,QName的参数给的不对
在你生成客户端自定义对象的时候,属性的上面有网络空间uri和别名的值,填对了就可以了
对我有用[0]丢个板砖[0]引用举报管理TOP
jq985
(jq985)
等 级:
#11楼 得分:0回复于:2009-07-07 16:07:05
比如生成的客户端User对象的name属性是这样写的
@XmlElementRef(name = "name", namespace = "http://bean", type = JAXBElement.class)
protected JAXBElement <String> name;
那么你的QName对象必须这样创建
new QName("http://bean","name");