com.jersey包下为jersey1.x 版本的demo
com.restful包下为jersey2.x 版本的demo
com.jaxws包为webservice的demo
> jersey-client 是jersey提供的客户端包,封装了一些客户端操作的类
> jersey-container-servlet是jersey的核心,服务端必备包
> jersey-media-moxy 是定义了jersry支持的常用的数据格式,json,xml都包括其中
> jersey-media-multipart 是jersey的上传文件的支持
Request类和Response类(服务端和客户端都需要)都是基本的POJO
使用JAXB的优点在于,无论使用XML格式还是JSON格式数据,都可以使用统一的JAVA模型 缺点很难找到一个合适的方式来生成特殊的JSON格式,这也是Jersey提供很多控制选项的原因
最大的优势在于可以完全控制JSON的解析、组装过程,相应的,在处理数据对象时也要更复杂 与JAXB相比,结果是相同的,但是处理过程(主要是组装JSON对象)要复杂
对于上面3种方式,均可使用String类代替Request类、Response类或JSONObject类,Jersey会自动将对象转换为JSON串
证书的生成过程可以参考Java Secure(SSL/TLS) Socket实现
@PathParam 接收链接中参数,如”/xxx/{name}/”,@PathParm(“name”)
@QueryParam 接收链接中的普通参数,如”/xxx?name=ttt”,@QueryParam(“name”)
@FormParm 接收post提交中的表单参数
@FormDataParm 上传文件接收文件参数
开发中,json已经常用到无处不在了,jersey对json的支持很好。
接收json需要使用@Consumes注解,指定解压方式:
@Consumes(MediaType.APPLICATION_JSON)
返回json需要使用@Produces注解,指定压缩方式:
@Produces(MediaType.APPLICATION_JSON)
@POST
@Path("import-excel")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public ImportResultBean importForExcel(@FormDataParam("file") String fileString,
@FormDataParam("file") InputStream fis,
@FormDataParam("file") FormDataContentDisposition fileDisposition) {
// TODO
return ;
}
文件下载需要将Response对象的压缩方式,指定为
@Produces(MediaType.APPLICATION_OCTET_STREAM)
http://pan.baidu.com/s/1slvwZQP
JAX_RPC(Java API for XML-Based RPC)允许Java应用程序可以通过已知的描述信息调用一个基于Java的Web服务,描述信息与Web服务的WSDL描述相一致
JAX-RPC2.0更名为JAX-WS2.0(Java API for XML-Based Web Services)
JAX-WS中,一个远程调用可以转换为一个基于XML的协议,如SOAP。开发者在使用JAX-WS的过程中,不需要编写任何生成、处理SOAP消息的代码,JAX-WS在运行时自动将API的调用转换为相应的SOAP消息
在服务端,用户只需要通过Java语言定义远程调用所需实现的接口,并提供相应实现,通过调用JAX-WS的服务发布接口即可将其发布为WebService接口
在客户端,用户可以通过JAX-WS的API创建一个代理来实现对于远程服务器端的调用