基于JAX-WS规范的WebService实现
1、相关介绍??????? 介绍Web Service需要首先了解SOA。SOA(Service-Oriented Architecture)面向服务架构是一种思想,它将应用程序的不同功能单元通过中间的契约(独立于硬件平台、操作系统和编程语言)连接起来,使得各种形式的功能单元更好的集成。WebService是SOA的一种很好的实现方式,WebService采用HTTP作为传输协议,SOAP(Simple Object Access Protocol)作为传输消息的格式。 【转载使用,请注明出处:http://blog.csdn.net/mahoking】 2、使用一般方式实现基于JAX-WS规范的WebService??????? 本例以MyEclipse开发工具为例,服务器为Tomcat 6,演示实现基于JAX-WS规范的WebService的一般方式。 package cn.mahaochen.web.ws; public class SayHello { public String sayHello(String name) { return "Welcome " + name + "Come here!"; } } 第三步:new→Other→Web Services→Web Service。Next,Java package选择我们之前建立的cn.mahaochen.web.ws,Next。这样MyEclipse会自动在cn.mahaochen.web.ws包上生成一个类SayHelloDelegate.java。 package cn.mahaochen.web.ws; @javax.jws.WebService(targetNamespace = "http://ws.web.mahaochen.cn/",serviceName = "SayHelloService",portName = "SayHelloPort") public class SayHelloDelegate { cn.mahaochen.web.ws.SayHello sayHello = new cn.mahaochen.web.ws.SayHello(); public String sayHello(String name) { return sayHello.sayHello(name); } }
<?xml version = "1.0"?> <endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"> <endpoint name="SayHelloPort" implementation="cn.mahaochen.web.ws.SayHelloDelegate" url-pattern="/SayHelloPort"> </endpoint> </endpoints> web.xml中的内容也会发生改变。 <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <servlet> <description>JAX-WS endpoint - SayHelloService</description> <display-name>SayHelloService</display-name> <servlet-name>SayHelloService</servlet-name> <servlet-class> com.sun.xml.ws.transport.http.servlet.WSServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>SayHelloService</servlet-name> <url-pattern>/SayHelloPort</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <listener> <listener-class> com.sun.xml.ws.transport.http.servlet.WSServletContextListener </listener-class> </listener> </web-app>
<?xml version="1.0" encoding="UTF-8"?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.3-hudson-390-. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.3-hudson-390-. --><definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.web.mahaochen.cn/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ws.web.mahaochen.cn/" name="SayHelloService"> <types> <xsd:schema> <xsd:import namespace="http://ws.web.mahaochen.cn/" schemaLocation="http://127.0.0.1:80/WSServer2/SayHelloPort?xsd=1"></xsd:import> </xsd:schema> </types> <message name="sayHello"> <part name="parameters" element="tns:sayHello"></part> </message> <message name="sayHelloResponse"> <part name="parameters" element="tns:sayHelloResponse"></part> </message> <portType name="SayHelloDelegate"> <operation name="sayHello"> <input message="tns:sayHello"></input> <output message="tns:sayHelloResponse"></output> </operation> </portType> <binding name="SayHelloPortBinding" type="tns:SayHelloDelegate"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding> <operation name="sayHello"> <soap:operation soapAction=""></soap:operation> <input> <soap:body use="literal"></soap:body> </input> <output> <soap:body use="literal"></soap:body> </output> </operation> </binding> <service name="SayHelloService"> <port name="SayHelloPort" binding="tns:SayHelloPortBinding"> <soap:address location="http://127.0.0.1:80/WSServer2/SayHelloPort"></soap:address> </port> </service> </definitions>
|
类 | 使用方式 | 作用 |
javax.jws.WebService | @WebService | 当实现 Web Service 时,@WebService 注释标记 Java 类;实现 Web Service 接口时,标记服务端点接口(SEI)。 |
javax.jws.WebMethod | @WebMethod | @WebMethod 注释表示作为一项 Web Service 操作的方法。 将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。 |
javax.jws.WebParam | @WebParam | @WebParam 注释用于定制从单个参数至 Web Service 消息部件和 XML 元素的映射。 将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。 |
除以上的注解/注释类还包括javax.jws.Oneway、 javax.jws.WebResult、javax.jws.HandlerChain、javax.jws.SOAPBinding等等。
【详细说明请阅读如下地址】
http://www-01.ibm.com/support/knowledgecenter/SSAW57_6.1.0/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/rwbs_jaxwsannotations.html?lang=zh
【转载使用,请注明出处:http://blog.csdn.net/mahoking】
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!