ro_nice 2012-03-15 17:07
浏览 435
已采纳

XmlRpc调用,如何返回一个对象给client?

我写了一个xmlrpc远程调用的方法,服务器端,我把对象放在Map里给返回过去。总是报错
org.apache.xmlrpc.client.XmlRpcClientException: Failed to parse server's response: Failed to load class for result object: com.usercenter.model.UserBase
这里是服务端代码
[code="java"]
public Map userInfo(Integer uid, String username) {
Map map = new HashMap();
if(this.access()){
try{
Long id = new Long(uid);
UserBase user = null;
if(uid != 0) {
user = userBaseDao.get(id);
}else if(StringUtils.isNotEmpty(username)){
user = userBaseDao.findByName(username);
}
if(user!=null){
//将结果存在Map里,返回给客户端
map.put(uid.toString(), user);
}else{
map.put("mark", Constants.ERROR);//状态标记表示失败
return map;
}
}catch(Exception e){
logger.error("获取用户信息出错:", e);
map.put("mark", Constants.ERROR);//状态标记表示失败
e.printStackTrace();
}
map.put("mark", Constants.SUCCESS);//状态标记表示成功
return map;
}else{
map.put("mark", Constants.ERROR);//状态标记表示失败
return map;
}
}

[/code]

客户端代码调用

[code="java"]public void getUser() throws Exception {
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setEnabledForExtensions(true);
config.setServerURL(new URL(
"http://localhost:8080/usercenter/xmlrpc_user"));
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);
Object object = getObjectClass(client.execute("userBaseManager.userInfo",
new Object[] { uid, userName }));
String name = object.getClass().getName();
System.out.println(name);
}[/code]

难道xmlrpc不能返回对象吗?
各位大哥大姐们,麻烦指点指点下!

  • 写回答

3条回答 默认 最新

  • Aronlulu 2012-03-15 17:45
    关注

    根据报错信息应该是客户端加载不了com.usercenter.model.UserBase这个class。
    看下客户端运行环境的classpath底下有没有这个类,没有的话导入就行了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求