2008-03-07

JSR-181 WS注释

Javax.jws

Javax.jws.soap

BEA公司提出的WebService注释规范(JSR-181

与它相关的技术:JAX-WS,JAXB,StAX,SAAJ,XML Registries,XML Digital Signature,Security in Web Tier

 注释不能避免的问题:

1.       类型匹配:因为JSR-175规范注释只能是基本类型,StringEnums,比如URL,只能是字符串,要程序员自己保证该字符串是URL格式的

2.       保证注释和代码匹配:比如@OneWay注释的方法就不能有返回值

3.       注释之间必须匹配:比如@OneWay出现的方法上必须要有@WebMethod注释出现

 WS实现类必须满足的条件

1.       实现类必须public,outer ,必须不是finalabstract

2.       必须有公共默认Constructor

3.       必须没有finalize方法

4.       class级别必须有@WebService指出该类是WS

5.       若类引用一个服务endpoint interface可以使用@WebService.endpointInterface,这样该类就必须实现此接口所有方法,该类除了@WebService@HandlerChain注释之外其他所有JSR-181的注释都不能使用,而且@WebService必须不能有name属性

6.       若类中没有@WebMethod注释而且没有实现endpoint interface,则所有除开从Object类中继承的public方法都被暴露成WebMethod(除开从继承来的@WebMethod.exclude也不会被暴露)

 WS 接口必须满足的条件

1.  接口必须是public,outer

2.  必须包含@WebService

3.  可以直接或间接继承java.rmi.Remote,但不必须

4.  接口中所有方法包含从父接口继承的方法都被暴露成WebMethod

5.  接口可以包含其他JSR-181注释以定制JavaWSDL的映射

6.  @WebService中不能设置portName,serviceName,endpointInterface的值

 WS 方法必须满足的条件

1.       方法必须是public

2.       方法的参数,返回值,异常必须符合JAX-WS2.0 3.6中定义的要求

3.       方法可以抛出RemoteException异常,不是必须

 @SOAPBinding使用

1.       使Web Service使用SOAP协议

2.       可以使用在TYPEMETHOD上,作用于METHOD上其属性style必须是DOCUMENT,若是RPC则会报错

3.       parameterStyle=BARE/WRAPPED

4.       style=DOCUMENT/RPC

5.       use=ENCODED/LITERAL

 WebService Mapping

1. @WebService.endpointInterface  WSDL:portType

2. @WebService.targetNamespace   WSDL:definations  targetNamespace

3. @WebService.serviceName         WSDL:service

4. wsdl:service 必须包含wsdl:port

5. wsdl:port必须和wsdl:portType 相同,但可能有不同的绑定

6. @WebService.portName     wsdl:port

7. wsdl:binding 没有对应的注释

8. @WebMethod.operationName          WSDL:operation

 

 

JDK 自带工具

 

Wsgen      generated web service class with @WebService

Wsimport         genertated web service from wsdl file

 

Xjc    --Schema to Java Class

Schemagen – Java Class with annotation to Schema

 

评论
发表评论

您还没有登录,请登录后发表评论

allenBen
搜索本博客
博客分类
最新评论