Java EE API 包括 JAX-RPC、SAAJ和JAXR。
SAAJ:SOAP with Attachments API for Java。
JAXR:Java API for XML Registries。
Web service API的主要目的是将Java组件与标准web service协议桥接起来。
通过JAX-RPC访问Web Service
有三种API可以用来访问web service:生成存根(stub),动态代理,以及动态调用接口(DII).
动态代理与典型的Java RMI或CORBA编程模型非常相似,客户端通过一个实现了远程接口的网络存根对远程服务
进行访问。该存根负责将远程接口的调用转变成网络消息,然后再将消息发送给远程服务。这与使用EJB远程引
用的方式非常相似。只不过它使用的是基于HTTP的SOAP协议,而非CORBA IIOP。
通过WSDL生成JAX-RPC制品
使用JAX-WS
@WebService 默认所有方法都是webMethod,如果有方法带@WebMethod,则只有带此注解的方法才是web service
操作。
@WebMethod
@SOAPBinding注解
默认的样式为Document/Literal Wrapped
@WebParam
@WebResult
@OneWay
分离Web Service契约(Separating the web Service Contract)
即在接口中声明web service,只有@WebService是必须的,其他注解可选。那样所有方法都会被暴露为web
service操作。
实现类的@WebService(endpointInterface="包名+接口")
服务类,服务的端点接口
@WebServiceRef:引用服务接口或服务的端点接口
为了注入服务接口,可以将value()和type()属性都设置为服务的接口类,否则就需要根据数据成员的类型推断
出来。
JAX-WS实际上是将SOAP消息正文传递给JAXB (JAX Binding)Unmarshaller,由它来负责构建最终的Java对象结构
。