java6 原生webService注解应用
来源:互联网 发布:动画规律软件 编辑:程序博客网 时间:2024/05/16 07:51
package org.rui.web;import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;/** * 1、用Jdk1.6.0_21以后的版本发布一个WebService服务.并通过地址栏查看它的wsdl文档. * 2、通过wsimport生成客户端代码,调用并查看运行的结果.(学会如何调用是我们的重点). * 需要注意的是,jdk1.6._07以后jdk版本发布WebService时必须要完整的对代码进行注解 * ,如果使用的是jdk1.6.0_21以后版本,因为它已经内含了ws2.1所以,可以只对类添加@WebService的注解. * * @author PC * */@WebServicepublic class ServiceTest {@WebMethodpublic String say()// @WebParam(name="name",partName="dd") String name{System.out.println("===>hello world");return "hello world";}}
package org.rui.web;import javax.xml.ws.Endpoint;/** * 直接运行 使用javax.xml.ws.Endpoint端点发布一个应用 * 所有非静态公开方法将对外部暴露. * @author PC * */public class StartService {public static void main(String[] args) {Endpoint.publish("http://localhost:8080/ServiceTest", new ServiceTest());}}
package org.rui.web;/** * Wsimport工具说明: wsimport是jdk自带的,可以根据wsdl文档生成客户端调用代码的工具.当然,无论服务器端的WebService是用什么语言写的,都将在客户端生成Java代码.服务器端用什么写的并不重要. wsimport.exe位于JAVA_HOME\bin目录下. 常用参数为: • -d<目录> - 将生成.class文件。默认参数。 • -s<目录> - 将生成.java文件。 • -p<生成的新包名> -将生成的类,放于指定的包下。 (wsdlurl) - http://server:port/service?wsdl,必须的参数 * @author PC * *cmd 找一个目录下,运行: wsimport -s . http://localhost:8080/ServiceTest?wsdl
把生成的java 全部copy到新的项目中,写个main测试即可 */public class Main {public static void main(String[] args) {ServiceTest test = new ServiceTestService().getServiceTestPort();String str=test.say();System.out.println(str);}}运行输出,
要点:
• 实现 Web Service 的 Java 类必须指定 @WebService 或 @WebServiceProvider 注释。不能同时提供这两种注释。
此注释适用于客户机/服务器 SEI 或 JavaBeans 端点的服务器端点实现类。
• 如果注释通过 endpointInterface 属性引用了某个 SEI,那么还必须使用 @WebService 注释来注释该 SEI。
• 请参阅适用于使用 @WebService 注释的类的方法的规则,以了解更多信息。
- 注释目标:类型
- 属性:
- - name
- wsdl:portType 的名称。缺省值为 Java 类或接口的非限定名称。(字符串)
- - targetNamespace
- 指定从 Web Service 生成的 WSDL 和 XML 元素的 XML 名称空间。缺省值为从包含该 Web Service 的包名映射的名称空间。(字符串)
- - serviceName
- 指定 Web Service 的服务名称:wsdl:service。缺省值为 Java 类的简单名称 + Service。(字符串)
- - endpointInterface
- 指定用于定义服务的抽象 Web Service 约定的服务端点接口的限定名。如果指定了此限定名,那么会使用该服务端点接口来确定抽象 WSDL 约定。(字符串)
- - portName
- wsdl:portName。缺省值为 WebService.name+Port。(字符串)
- - wsdlLocation
- 指定用于定义 Web Service 的 WSDL 文档的 Web 地址。Web 地址可以是相对路径或绝对路径。(字符串)
将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。
要点:
• 仅支持在使用 @WebService 注释来注释的类上使用 @WebMethod 注释。
- 注释目标:方法
- 属性:
- - operationName
- 指定与此方法相匹配的wsdl:operation 的名称。缺省值为 Java 方法的名称。(字符串)
- - action
- 定义此操作的行为。对于 SOAP 绑定,此值将确定 SOAPAction 头的值。缺省值为 Java 方法的名称。(字符串)
- - exclude
- 指定是否从 Web Service 中排除某一方法。缺省值为 false。(布尔值)
将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。
- 注释目标:方法
- 没有适用于 Oneway 注释的属性。
将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。
- 注释目标:参数
- 属性:
- - name
- 参数的名称。如果操作是远程过程调用(RPC)类型并且未指定partName 属性,那么这是用于表示参数的 wsdl:part 属性的名称。如果操作是文档类型或者参数映射至某个头,那么 -name 是用于表示该参数的 XML 元素的局部名称。如果操作是文档类型、参数类型为 BARE 并且方式为 OUT 或 INOUT,那么必须指定此属性。(字符串)
- - partName
- 定义用于表示此参数的 wsdl:part属性的名称。仅当操作类型为 RPC 或者操作是文档类型并且参数类型为BARE 时才使用此参数。(字符串)
- - targetNamespace
- 指定参数的 XML 元素的 XML 名称空间。当属性映射至 XML 元素时,仅应用于文档绑定。缺省值为 Web Service 的 targetNamespace。(字符串)
- - mode
- 此值表示此方法的参数流的方向。有效值为 IN、INOUT 和 OUT。(字符串)
- - header
- 指定参数是在消息头还是消息体中。缺省值为 false。(布尔值)
将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。
- 注释目标:方法
- 属性:
- - name
- 当返回值列示在 WSDL 文件中并且在连接上的消息中找到该返回值时,指定该返回值的名称。对于 RPC 绑定,这是用于表示返回值的 wsdl:part属性的名称。对于文档绑定,-name参数是用于表示返回值的 XML 元素的局部名。对于 RPC 和 DOCUMENT/WRAPPED 绑定,缺省值为 return。对于 DOCUMENT/BARE 绑定,缺省值为方法名 + Response。(字符串)
- - targetNamespace
- 指定返回值的 XML 名称空间。仅当操作类型为 RPC 或者操作是文档类型并且参数类型为 BARE 时才使用此参数。(字符串)
- - header
- 指定头中是否附带结果。缺省值为false。(布尔值)
- - partName
- 指定 RPC 或 DOCUMENT/BARE 操作的结果的部件名称。缺省值为@WebResult.name。(字符串)
只能通过对 SEI 或实现类使用 @HandlerChain 注释来配置服务器端的处理程序。
但是可以使用多种方法来配置客户端的处理程序。可以通过对生成的服务类或者 SEI 使用 @HandlerChain 注释来配置客户端的处理程序。此外,可以按程序在服务上注册您自己的 HandlerResolver 接口实现,或者按程序在绑定对象上设置处理程序链。
- 注释目标:类型
- 属性:
- - file
- 指定处理程序链文件所在的位置。文件位置可以是采用外部格式的绝对 java.net.URL,也可以是类文件中的相对路径。(字符串)
- - name
- 指定配置文件中处理程序链的名称。(字符串)
将此注释应用于客户机或服务器服务端点接口(SEI)上的类型或方法,或者应用于 JavaBeans 端点的服务器端点实现类。
方法级别的注释仅限于它可以指定的对象,仅当style 属性为 DOCUMENT 时才使用该注释。如果未指定方法级别的注释,那么将使用类型的@SOAPBinding 行为。
- 注释目标:类型或方法
- 属性:
- - style
- 定义发送至 Web Service 和来自 Web Service 的消息的编码样式。有效值为DOCUMENT 和 RPC。缺省值为DOCUMENT。(字符串)
- - use
- 定义用于发送至 Web Service 和来自 Web Service 的消息的格式。缺省值为 LITERAL。ENCODED 在 Feature Pack for Web Services 中不受支持。(字符串)
- - parameterStyle
- 确定方法的参数是否表示整个消息体,或者参数是否是封装在执行操作之后命名的顶级元素中的元素。有效值为 WRAPPED 或 BARE。对于DOCUMENT 类型的绑定只能使用BARE 值。缺省值为 WRAPPED。(字符串)
将此注释应用于 JavaBeans 端点或提供程序端点的服务器端点实现类。
要点:
• 可以通过将该注释的值指定为javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING或javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING来对 Java bean 端点实现类使用 @BindingType 注释以启用 MTOM。
- 注释目标:类型
- 属性:
- - value
- 指示绑定标识 Web 地址。有效值为javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING、javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING和 javax.xml.ws.http.HTTPBinding.HTTP2HTTP_BINDING。缺省值为javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING。(字符串)
从 Java 对象开始时,此元素用来解决 document literal 方式下的重载冲突。在这种情况下,只有 className 属性是必需的。
将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。
- 注释目标:方法
- 属性:
- - localName
- 指定用于表示请求包装器的 XML 模式元素的局部名称。缺省值为在 javax.jws.WebMethod 注释中定义的 operationName。(字符串)
- - targetNamespace
- 指定请求包装器方法的 XML 名称空间。缺省值为 SEI 的目标名称空间。(字符串)
- - className
- 指定用于表示请求包装器的类的名称。(字符串)
从 Java 对象开始时,此元素用来解决 document literal 方式下的重载冲突。在这种情况下,只有 className 属性是必需的。
将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。
- 注释目标:方法
- 属性:
- - localName
- 指定用于表示请求包装器的 XML 模式元素的局部名称。缺省值为 operationName + Response。operationName 是在 javax.jws.WebMethod 注释中定义的。(字符串)
- - targetNamespace
- 指定请求包装器方法的 XML 名称空间。缺省值为 SEI 的目标名称空间。(字符串)
- - className
- 指定用于表示响应包装器的类的名称。(字符串)
要点:
• 仅支持在使用 @WebServiceProvider 注释来注释的类上使用 @ServiceMode 注释。
- 注释目标:类型
- 属性:
- - value
- 指示提供者类是接受消息的有效内容 PAYLOAD 还是整个消息 MESSAGE。缺省值为 PAYLOAD。(字符串)
此注释只能应用于客户机或服务器上的故障实现类。
- 注释目标:类型
- 属性:
- - name
- 指定用于表示 WSDL 文件中相应故障的 XML 元素的局部名称。必须指定实际值。(字符串)
- - targetNamespace
- 指定用于表示 WSDL 文件中相应故障的 XML 元素的名称空间。(字符串)
- - faultBean
- 指定故障 bean 类的名称。(字符串)
要点:
• 实现 Web Service 的 Java 类必须指定 @WebService 或 @WebServiceProvider 注释。不能同时提供这两种注释。
• 只有服务实现类才支持 @WebServiceProvider 注释。
• 任何具有 @WebServiceProvider 注释的类都必须具有名为 invoke 的操作。
- 注释目标:类型
- 属性:
- - targetNamespace
- 指定从 Web Service 生成的 WSDL 和 XML 元素的 XML 名称空间。缺省值为从包含该 Web Service 的包名映射的名称空间。(字符串)
- - serviceName
- 指定 Web Service 的服务名称:wsdl:service。缺省值为 Java 类的简单名称 + Service。(字符串)
- - portName
- wsdl:portName。缺省值为类的名称 + Port。(字符串)
- - wsdlLocation
- 用于定义 Web Service 的 WSDL 文档的 Web 地址。此属性是必需的。(字符串)
将此注释应用于 JavaBeans 端点或提供程序端点的服务器端点实现类。对容器进行初始化时,容器会将 WebServiceContext 资源的实例添加到端点实现中。
- 注释目标:字段或方法
- 属性:
- - type
- 指示资源的 Java 类型。您需要使用缺省值java.lang.Object 或者javax.xml.ws.Web ServiceContext值。如果类型是缺省值,那么必须将资源添加到字段或方法中。在这种情况下,字段的类型或者由方法定义的 JavaBeans 属性的类型必须为javax.xml.ws.WebServiceContext。(字符串)
将此注释应用于 JAX-WS 应用程序处理程序、JavaBeans 端点或提供程序端点的服务器端点实现类。
- 注释目标:方法
将此注释应用于 JAX-WS 应用程序处理程序、JavaBeans 端点或提供程序端点的服务器端点实现类。
- 注释目标:方法
适用于使用 @WebService 注释的类的方法的规则
- 如果某个实现类的 @WebService 注释引用了 SEI,那么该实例类不能具有任何 @WebMethod 注释。
- 无论是否指定了 @WebMethod 注释,SEI 的所有公用方法都被认为是已显示的方法。在包含 exclude 属性的 SEI 上使用 @WebMethod 注释是不正确的。
- 对于不引用 SEI 的实现类,如果对 @WebMethod 注释指定了值 exclude=true,那么不会显示该方法。如果未指定 @WebMethod 注释,那么将显示包括继承的方法在内的所有公用方法,但是不包括从 java.lang.Object 继承的方法。
- java6 原生webService注解应用
- java6 原生webService注解应用
- java原生 webservice注解
- java6 webservice
- Java6 WebService @WebService
- Java6开发WebService入门
- Java6上开发WebService
- Java6 WebService的发布
- java6 发布WebService
- Java6上开发WebService
- webservice 实现之java6
- Java6开发WebService入门
- java6发布webservice
- Java6 WebService 使用集合
- JAVA6学习webservice
- Java6开发WebService入门
- Java6开发WebService进阶
- Java6 WebService的发布
- [水]ZOJ2812
- 动态规划示例四
- 如何清理监听日志
- java编程1
- oracle中所有关于时间日期的问题总结
- java6 原生webService注解应用
- Lua 基础
- linux下安装和运行wireshark
- Apache: No space left on device: Couldn’t create accept lock
- java编程2
- python发送各类邮件的主要方法
- 水处理过滤器:RO反渗透设备中活性碳过滤器作用分析
- [水]ZOJ2736
- Android Fragment详解(五):Fragment与Activity通讯