xfire开发webservice时返回类型是复杂对象

在myeclipse下开发的首先,有一个方法返回类型是List,里面是自定义的类的对象,没有参数。我在myeclipse自带的webservicesexplorer里可以... 在myeclipse下开发的
首先,有一个方法返回类型是List,里面是自定义的类的对象,没有参数。我在myeclipse自带的web services explorer里可以看到返回值,是正确的。但是在写客户端的时候,发现返回给我的list里面成员都是null,但是list的size是正确的
然后,因为当成员是string时,返回是list的运用是正确的。我就自己测试是否在传递自定义类时出错,写了很简单的测试
这是接口
public interface ITest {

public Entity getEn();
}
这是接口实现
public class TestImpl implements ITest {

public Entity getEn(){
Entity en = new Entity();
en.itr=8;
en.str="bless";
return en;
}
}
这是自定义类的代码
public class Entity {
public String str =new String();
public int itr ;
}
这是配置的ITest.aegis.xml
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>

<method name="getEn">
<return-type componentType="test.Entity" />
</method>
</mapping>
</mappings>
这是写的测试客户端

public class Client {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Service srvcModel = new ObjectServiceFactory()
.create(ITest.class);

XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
.newInstance().getXFire());
String URL = "http://localhost:8080/WsTest/services/Test";
ITest srvc = null;
try {
srvc = (ITest) factory.create(
srvcModel, URL);

Entity en=new Entity();
en = srvc.getEn();
System.out.println(en.str);
System.out.println(en.itr);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}

}
包结构是正确的
但是发现这个返回的entity的成员值还是初始化状态,服务器的代码好像没有修改,web services explorer里的soap信息如下
- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <soap:Body>
- <getEnResponse xmlns="http://test">
<out />
</getEnResponse>
</soap:Body>
</soap:Envelope>
不知道为什么没有输出值
熟悉xfire开发的人看看是怎么回事
展开
 我来答
裤衩反穿尾巴长
2008-05-28 · TA获得超过1105个赞
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:267万
展开全部
推荐你不要返回复杂对象,你还是老老实实返回String之类的类型。做ws开发好久了,ws不是那么尽如人意,有很多不完美。还就是xfire都是被炒作起来的,尽量别去用。还是老实用axis吧,和一些集成系统(比如IBM的产品)做对接比较融洽。
经验之谈,无用勿骂哦。
wsk1002
2008-05-27
知道答主
回答量:52
采纳率:0%
帮助的人:20.5万
展开全部
你既然用webservice为什么还要用复杂类型?这不是自己给自己找麻烦吗?如果你用axis2那返回值只支持一种类型,xfire好用一些,也广泛了一些,但是建议你webservice最好不要用复杂类型,都拼装成简单类型或者List就好。因为自定义类型在webservice中有可能引起未知的错误。到时候就不好调试了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式