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这里是服务端代码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);//状态标记表示失败 这样的数据会报错吗

时间: 2024-11-27 08:28:09

XmlRpc调用,如何返回一个对象给client?的相关文章

java中对象调用方法返回一个对象的问题

问题描述 java中对象调用方法返回一个对象的问题 例如session.createQuery(hql); 那么这条语句返回的对象属于哪个类呢,如何判断呢? 解决方案 ctrl加鼠标点击createQuery,会有返回方法,或者你在通过session点的时候也可以看到返回方法. 解决方案二: 按住ctrl点击方法,自己去看方法的返回值. 解决方案三: 在java中将一个对象的所有方法打印出来java中远程对象方法调用中的安全策略问题java中返回局部对象问题 解决方案四: 事实上他返回的还是qu

hibernate-Hibernate Query只能返回list吗?可以直接返回一个对象吗?

问题描述 Hibernate Query只能返回list吗?可以直接返回一个对象吗? Hibernate Query只能返回list吗?可以直接返回一个对象吗? Hibernate Query只能返回list吗?可以直接返回一个对象吗? 解决方案 可以返回一个对象调用query.uniqueResult(),但是要确保一定有数据,否则就报错了

php soap 调用获取返回信息

php教程 soap 调用获取返回信息 trace soap message 获取 soap返回信息 <?php    $ws = "http://www.111cn.net/sd/2001/temperatureservice.wsdl";    $zipcode = "23590";    $client = new soapclient($ws,array('trace' => 1));    $temperature = $client->

php调用存储过程返回结果集

php调用存储过程返回结果集,解决can't return a result set in the given context错误的方法需要php调用存储过程,返回一个结果集,发现很困难,找了半天,终于在老外的论坛上找到解决方案,这里本地化一下. 关键就是两点 1)define('CLIENT_MULTI_RESULTS', 131072); 2)$link = mysql_connect("127.0.0.1", "root", "",1,CL

能不能通过link中发射得到的所有属性再返回一个对象?

问题描述 能不能通过link中发射得到的所有属性再返回一个对象? 能不能通过link中发射得到的所有属性再返回一个对象? 解决方案 如果这个对象提供了公有构造函数,它的属性都是可写的,并且它的属性是简单类型(否则你要再创建对应的类型),那么可以通过反射再创建回来

c++-C++函数中返回一个对象

问题描述 C++函数中返回一个对象 class A{ private: int data; public: A(int x=0):data(x){} A get1(); A get2(); }; A A::get1(){ return A(3); } A A::get2(){ A a; a.data=3; return A; } ``这两种到底有什么区别啊 如果再把返回类型改成A&呢,又有什么区别呢 A a=get1(),b=get2(); 究竟是局部变量先销毁还是先赋值 解决方案 区别很小,主

开发流程- 公司要与其他网站合作,要求开发api接口,供合作方调用,返回的数据是json或xml格式的

问题描述 公司要与其他网站合作,要求开发api接口,供合作方调用,返回的数据是json或xml格式的 请问这个开发流程大概是怎样的?求解..................................................... 解决方案 asp.net webapi非常适合做这个,你只要按照你原来的方式编写函数调用,它会自动将提交的数据转换成对象,作为参数传入,以及传出的参数转换成json返回. 解决方案二: 不管你后台用.net还是java还是php,你只需要公布一个可以访问的

多线程- 我的java难道是盗版吗(调用有返回值的函数无响应)

问题描述 我的java难道是盗版吗(调用有返回值的函数无响应) boolean flag = pcSystem.returnTenderResult(bidDocu,tenderDocu); 我在自定义pcSystem类中调用一个具有boolean返回值的函数returnTenderResult(synchronized) 这条语句的上一条语句都会执行,而returnTenderResult内方法一定概率上不执行 (方法内的第一条语句都没有执行,还不涉及方法内具体逻辑),系统涉及了多线程, 这是

link中如何定义直接返回一个对象的函数,而不是集合的那种?

问题描述 link中如何定义直接返回一个对象的函数,而不是集合的那种? link中如何定义直接返回一个对象的函数,而不是集合的那种? 解决方案 看你的函数定义,如果返回值是单个对象,那就是单个对象,如果是 IEnumerable<T>就是集合. 解决方案二: 看你的函数定义,如果返回值是单个对象,那就是单个对象,如果是 IEnumerable就是集合.