我写了一个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不能返回对象吗?
各位大哥大姐们,麻烦指点指点下!