java xfire webservice 怎么传javabean参数

古市轩 2013-08-26 08:10:27
java xfire webservice ,在客户端怎么传javabean?我传基本类型的都没有问题,传自己写的javabean,获取到的都是为空的?
...全文
164 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
古市轩 2013-09-03
  • 打赏
  • 举报
回复
对,就是发布方和调用方的包名必须一致,,搞死我了都
s478853630 2013-08-26
  • 打赏
  • 举报
回复
看错了,楼主指定要xfire 我以前用xfire成功的传递过javabean,好像有一段啰嗦的配置,且发布方和调用方的包名必须一致, 那时候一直想用xfire传递List, 但没成功,感觉xfire太弱了,就放弃了, 现在用apache的,挺不错的,想要的功能都实现了 楼主坚持用xfire,就去下载资源吧,或许可以哦! http://download.csdn.net/detail/s478853630/4200187 http://download.csdn.net/detail/s478853630/4200258
s478853630 2013-08-26
  • 打赏
  • 举报
回复
首先发布webservice
package com.zl.webservice;

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.mvc.annotation.Webservice;
import org.apache.commons.mvc.annotation.WebserviceMethod;
import org.apache.commons.mvc.thread.HttpThread;
import com.zl.entity.Store;
import com.zl.model.StoreModel;

/**
 * 发布商品的Webservice
 * @version 1.0
 */
@Webservice(name = "store")
public class StoreWebservice {
	
	/**
	 * 查询数据
	 * @param store
	 * @return
	 */
	@WebserviceMethod
	public List<Store> find(Store store) {
		HttpServletRequest request = HttpThread.getRequest();
		System.out.println("request: " + request);
		return new StoreModel().findByExcel(null != store ? store : new Store());
	}

}
再测试调用webservice
package com.zl.webservice;

import java.util.List;
import org.apache.commons.mvc.webservice.WebserviceClient;
import com.zl.entity.Store;

/**
 * 测试Webservice
 * @version 1.0
 */
public class TestWebservice {

	public static void main(String[] args) {
		Store store = new Store();// 准备参数
		store.setBrand("多乐士");
		// 首先创建一个webservice客户端,参数依次为:webservice的url, webservice的名称, webservice的方法, 参数列表, 返回类型, 泛型的类型(不需要泛型就传入null) 
        WebserviceClient client = new WebserviceClient("http://localhost:8080/test/webservice", "store", "find", new Object[] { store }, List.class, Store.class);
        List<Store> list = client.execute();// 调用webservice  
        System.out.println("从服务器返回" + list.size() + "个商品");// 得到了服务端返回的数据
	}
	
}
最后运行main方法,发布方的控制台输出:
request: org.apache.catalina.connector.RequestFacade@6f558a
2013-08-25 20:03:59,546 [http-8080-2] INFO  [org.apache.commons.mvc.webservice.WebserviceControl] - 路径:/test/webservice   方式:POST   耗时:15ms   IP:127.0.0.1   参数:{"getSoundCode":["0.4661341051949396"],"wsRandom":["7636823720"],"arg0":[{"brand":"多乐士","brandPy":"","description":"","id":0,"model":"","name":"","namePy":"","price":0,"prices":"","searchName":"","searchStatus":0,"specification":"","unit":"","unitPy":""}],"wsMethod":["find"],"wsRandomMd5":["8b3d18cac9f49d0a9767b43e484ac6bc"],"wsName":["store"]}   浏览器:Java 1.6.0_10-rc2   系统:Java 1.6.0_10-rc2    其它:Java/1.6.0_10-rc2
调用方的控制台输出:
从服务器返回17个商品
非常强大的webservice,你想要的功能,这里都有了, 别说是自定义数据类型,就算是Map<k, v>,List<?>, Set<?>, 也能很轻松搞定

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧