zhu894532094 发表于 2017-2-5 14:48:05

学习Java6(一) WebServices (3)在tomcat中发布

  为了满足广大网友的要求,今天抽时间搞了下WebServices 在tomcat中的发布
相关文章:
tomcat启动时自动加载servlet
学习Java6(一) WebServices (1)服务端
学习Java6(一) WebServices (2)客户端

新建一个servlet,偶太,能少打一个字符都是好的,所以servlet写的非常简洁,也适合初学者看得懂。。。。。。。。。。
WebServiceStarter.java

1importjavax.servlet.ServletException;
2importjavax.servlet.http.HttpServlet;
3importjavax.xml.ws.Endpoint;
4
5publicclassWebServiceStarterextendsHttpServlet{
6
7privatestaticfinallongserialVersionUID=5870534239093709659L;
8
9publicWebServiceStarter(){
10super();
11}
12
13publicvoiddestroy(){
14super.destroy();
15}
16
17publicvoidinit()throwsServletException{
18System.out.println("准备启动服务");
19Endpoint.publish("http://localhost:8080/HelloService",newHello());
20System.out.println("服务启动完毕");
21}
22}
23

web service类Hello.java也是非常简单
1
2
3importjavax.jws.WebMethod;
4importjavax.jws.WebService;
5importjavax.jws.soap.SOAPBinding;
6
7@WebService(targetNamespace="http://jdk.study.hermit.org/client")
8@SOAPBinding(style=SOAPBinding.Style.RPC)
9publicclassHello{
10@WebMethod
11publicStringsayHello(Stringname){
12return"hello:"+name;
13}
14}
web.xml
1<?xmlversion="1.0"encoding="UTF-8"?>
2<web-appversion="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"
3xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
5http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
6<servlet>
7<servlet-name>WebServiceStarter</servlet-name>
8<servlet-class>WebServiceStarter</servlet-class>
9<load-on-startup>1</load-on-startup>
10</servlet>
11</web-app>
12

ok
就这三个文件。。。。。。。。。啥jar都不要。。。。
发布,启动服务器
2007-1-5 13:28:37 org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: G:/JDK6/bin;F:/tomcat6/bin
2007-1-5 13:28:37 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2007-1-5 13:28:37 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 937 ms
2007-1-5 13:28:38 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2007-1-5 13:28:38 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.7
2007-1-5 13:28:38 org.apache.catalina.core.StandardHost start
信息: XML validation disabled
2007-1-5 13:28:38 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2007-1-5 13:28:38 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
准备启动服务
服务启动完毕
2007-1-5 13:28:39 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2007-1-5 13:28:39 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2007-1-5 13:28:39 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=16/62 config=null
2007-1-5 13:28:39 org.apache.catalina.startup.Catalina start
信息: Server startup in 1969 ms


访问:http://localhost:8080/HelloService?wsdl
1<?xmlversion="1.0"encoding="UTF-8"?>
2-<definitionsxmlns="http://schemas.xmlsoap.org/wsdl/"xmlns:tns="http://jdk.study.hermit.org/client"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"targetNamespace="http://jdk.study.hermit.org/client"name="HelloService">
3<types/>
4-<messagename="sayHello">
5<partname="arg0"type="xsd:string"/>
6</message>
7-<messagename="sayHelloResponse">
8<partname="return"type="xsd:string"/>
9</message>
10-<portTypename="Hello">
11-<operationname="sayHello"parameterOrder="arg0">
12<inputmessage="tns:sayHello"/>
13<outputmessage="tns:sayHelloResponse"/>
14</operation>
15</portType>
16-<bindingname="HelloPortBinding"type="tns:Hello">
17<soap:bindingstyle="rpc"transport="http://schemas.xmlsoap.org/soap/http"/>
18-<operationname="sayHello">
19<soap:operationsoapAction=""/>
20-<input>
21<soap:bodyuse="literal"namespace="http://jdk.study.hermit.org/client"/>
22</input>
23-<output>
24<soap:bodyuse="literal"namespace="http://jdk.study.hermit.org/client"/>
25</output>
26</operation>
27</binding>
28-<servicename="HelloService">
29-<portname="HelloPort"binding="tns:HelloPortBinding">
30<soap:addresslocation="http://localhost:8080/HelloService"/>
31</port>
32</service>
33</definitions>
看到以上代码就ok!
客户端写法照旧

呵呵,这下大家满意了吧。。。。。。。。。
有冲动想把项目里的xfire撤掉了。。。。。。。。。。。。。。。。。
页: [1]
查看完整版本: 学习Java6(一) WebServices (3)在tomcat中发布