[一站式服务]部署Webservice及启动脚本

前言

Java中,创建Webservice项目的时候,一般会用到两个组件:XFire和Jax-ws,根据需要的不同,两者都有可能会用到,在这里记录一下。
另外,当部署到生产环境的时候,即导出jar包的方式运行,那么就需要启动脚本,自动加载依赖jar包,来执行程序。下面会展示Windows和Linux的版本。
      本图很好了解释了JAX-WS的流程

[一站式服务]部署Webservice及启动脚本_第1张图片

流程

  • spring+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、图片、附件上传。

[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

你可能感兴趣的:(04.项目最佳实践)