webservice服务端基于xfire,至于如何创建基于xfire的服务端,网上有很多文章就不再阐述。
服务端
pojo:
public class GroupInfo implements Serializable{
private static final long serialVersionUID = 7646885719123155790L;
private int groupId; //组id
private String groupName; //组名称
private int parentGroupId; //上级组id
}
方法:
public List<GroupInfo> getAllGroupInfo(String username, String password) {
IQueryDao queryDao = new QueryDaoImpl();
int policyid = queryDao.getDefaultPolicyID(username, password);
if (policyid==0)
return new ArrayList<GroupInfo>();
else
return queryDao.getAllGroupInfo(policyid);
}
说明:传入用户名密码,返回一个list,里面的对象是类GroupInfo的实例。
.
.
客户端
new-->other-->XFire-->Code generation from WSDL document,填写WSDL URL or path :http://192.168.1.174:8080/reservices/services/res_query?wsdl,点击完成,将自动生成webservice客户端代码。
注意:
如果解析wsdl报错,有可能是命名空间不能正确解析的问题,可以手工在<xsd:schema的下一行加上<xsd:import,来导入命令空间。如下所示:
<xsd:import namespace="http://po.resource.dv.com">
</xsd:import>,如果有多个命令空间,一一加上即可。
调用示例代码:
res_queryClient client = new res_queryClient();
res_queryPortType impl = client.getres_queryHttpPort();
ArrayOfGroupInfo arr = impl.getAllGroupInfo("admin", "123456");
List<GroupInfo> list = arr.getGroupInfo();
for (GroupInfo o : list) System.out.println(o.getGroupName().getValue());
本例在MyEclipse6.5下测试通过。