前言
Java中,创建Webservice项目的时候,一般会用到两个组件:XFire和Jax-ws,根据需要的不同,两者都有可能会用到,在这里记录一下。
另外,当部署到生产环境的时候,即导出jar包的方式运行,那么就需要启动脚本,自动加载依赖jar包,来执行程序。下面会展示Windows和Linux的版本。
? ? ? 本图很好了解释了JAX-WS的流程
1、spring配置文件:(参考:
官方spring集成示例)
(1)在web.xml中注册 JAX-WS servlet
(2)接着在spring配置文件中添加头文件、Handler、service绑定及创建Web Service bean
2、Handler:
(参考:
官方Handler示例
Oracle官方示例)
3、Web Service入口类
学习成果(遇到的坑)
1、Handler中getHeaders()返回的null值,容易造成空指针异常,所以推荐使用Collections.emptySet()。原因请看文献[3]
2、 上节第二个流程,Handler中out.println()替换成org.apache.log4j.Logger,方便输出日志;
此外,logToSystemOut()方法体中,适当优化if-else,改成?:三元操作符。详细代码请看最佳实践1
3、Windows和linux的启动脚本 .sh和.bat
--------------------------------------------------2014年5月23日更新:增加对Webservice的性能测试----------------------
1、之前单元测试的时候使用的JUnit,但是遇到压力测试和性能测试的时候,就得用上TestNG了,参考:
使用TestNG进行性能测试
最佳实践
1、
Handler下载
2、
Web Service Class下载
3、
通过wsimport命令生成后的WebService客户端下载
4、
Windows启动java脚本下载
5、
linux的启动java脚本下载
参考文献
[1].
使用XFire组件开发WebService实例:讲解了webservice的本质,并以例子展示
[2].
5天学会jaxws-webservice编程第一天:分五篇来讲解,包括返回List<Object>、图片、附件上传。
[3].
Prefer empty items to null ones:解释了用空集合代替null值的原因
[4].
JAX-WS 维基百科?:整合了JAX-WS的所有资源
[5].
JAX-WS 注释,如@WebResult解释
[6].
Java jax ws tutorial develop web services clients consumers:针对JAX_WS注释详细的案例
[7].
Creating a Simple Web Service and Client with JAX-WS:来自官方,The Java EE 5 Tutorial