问题描述
我写了一个xmlrpc远程调用的方法,服务器端,我把对象放在Map里给返回过去。总是报错org.apache.xmlrpc.client.XmlRpcClientException: Failed to parse server's response: Failed to load class for result object: com.usercenter.model.UserBase这里是服务端代码public Map<String, Object> userInfo(Integer uid, String username) {Map<String, Object> map = new HashMap<String, Object>();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; }}客户端代码调用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);}难道xmlrpc不能返回对象吗?各位大哥大姐们,麻烦指点指点下! 问题补充:有这个类,程序都还没有运行完毕,就报错,总的来说,就是当我返回Map到client时,程序直接跳出。报出异常aronlulu 写道
解决方案
根据报错信息应该是客户端加载不了com.usercenter.model.UserBase这个class。看下客户端运行环境的classpath底下有没有这个类,没有的话导入就行了。
解决方案二:
楼主怎么解决的啊
解决方案三:
com.usercenter.model.UserBase 实现序列化接口了吗serializable还有返回map.put("mark", Constants.ERROR);//状态标记表示失败 这样的数据会报错吗