為了滿足廣大網友的要求,今天抽時間搞了下WebServices 在tomcat中的發布
相關文章:
tomcat啟動時自動加載servlet
學習Java6(一) WebServices (1)服務端
學習Java6(一) WebServices (2)客戶端
新建一個servlet,偶太,能少打一個字符都是好的,所以servlet寫的非常簡潔,也適合初學者看得懂。。。。。。。。。。
WebServiceStarter.java
?1?import?javax.servlet.ServletException;
?2?import?javax.servlet.http.HttpServlet;
?3?import?javax.xml.ws.Endpoint;
?4?
?5?public?class?WebServiceStarter?extends?HttpServlet?{
?6?????
?7?????private?static?final?long?serialVersionUID?=?5870534239093709659L;
?8?
?9?????public?WebServiceStarter()?{
10?????????super();
11?????}
12?
13?????public?void?destroy()?{
14?????????super.destroy();
15?????}
16?
17?????public?void?init()?throws?ServletException?{
18?????????System.out.println("準備啟動服務");
19?????????Endpoint.publish("http://localhost:8080/HelloService",?new?Hello());
20?????????System.out.println("服務啟動完畢");
21?????}
22?}
23?
?2?import?javax.servlet.http.HttpServlet;
?3?import?javax.xml.ws.Endpoint;
?4?
?5?public?class?WebServiceStarter?extends?HttpServlet?{
?6?????
?7?????private?static?final?long?serialVersionUID?=?5870534239093709659L;
?8?
?9?????public?WebServiceStarter()?{
10?????????super();
11?????}
12?
13?????public?void?destroy()?{
14?????????super.destroy();
15?????}
16?
17?????public?void?init()?throws?ServletException?{
18?????????System.out.println("準備啟動服務");
19?????????Endpoint.publish("http://localhost:8080/HelloService",?new?Hello());
20?????????System.out.println("服務啟動完畢");
21?????}
22?}
23?
web service類Hello.java也是非常簡單
?1?
?2?
?3?import?javax.jws.WebMethod;
?4?import?javax.jws.WebService;
?5?import?javax.jws.soap.SOAPBinding;
?6?
?7?@WebService(targetNamespace?=?"http://jdk.study.hermit.org/client")
?8?@SOAPBinding(style?=?SOAPBinding.Style.RPC)
?9?public?class?Hello?{
10?????@WebMethod
11?????public?String?sayHello(String?name)?{
12?????????return?"hello:"?+?name;
13?????}
14?}
web.xml?2?
?3?import?javax.jws.WebMethod;
?4?import?javax.jws.WebService;
?5?import?javax.jws.soap.SOAPBinding;
?6?
?7?@WebService(targetNamespace?=?"http://jdk.study.hermit.org/client")
?8?@SOAPBinding(style?=?SOAPBinding.Style.RPC)
?9?public?class?Hello?{
10?????@WebMethod
11?????public?String?sayHello(String?name)?{
12?????????return?"hello:"?+?name;
13?????}
14?}
?1?<?xml?version="1.0"?encoding="UTF-8"?>
?2?<web-app?version="2.4"?xmlns="http://java.sun.com/xml/ns/j2ee"
?3?????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?4?????xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee?
?5?????http://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?
?2?<web-app?version="2.4"?xmlns="http://java.sun.com/xml/ns/j2ee"
?3?????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?4?????xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee?
?5?????http://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???<?xml?version="1.0"?encoding="UTF-8"??>?
?2?-?<definitions?xmlns="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?-?<message?name="sayHello">
?5???<part?name="arg0"?type="xsd:string"?/>?
?6???</message>
?7?-?<message?name="sayHelloResponse">
?8???<part?name="return"?type="xsd:string"?/>?
?9???</message>
10?-?<portType?name="Hello">
11?-?<operation?name="sayHello"?parameterOrder="arg0">
12???<input?message="tns:sayHello"?/>?
13???<output?message="tns:sayHelloResponse"?/>?
14???</operation>
15???</portType>
16?-?<binding?name="HelloPortBinding"?type="tns:Hello">
17???<soap:binding?style="rpc"?transport="http://schemas.xmlsoap.org/soap/http"?/>?
18?-?<operation?name="sayHello">
19???<soap:operation?soapAction=""?/>?
20?-?<input>
21???<soap:body?use="literal"?namespace="http://jdk.study.hermit.org/client"?/>?
22???</input>
23?-?<output>
24???<soap:body?use="literal"?namespace="http://jdk.study.hermit.org/client"?/>?
25???</output>
26???</operation>
27???</binding>
28?-?<service?name="HelloService">
29?-?<port?name="HelloPort"?binding="tns:HelloPortBinding">
30???<soap:address?location="http://localhost:8080/HelloService"?/>?
31???</port>
32???</service>
33???</definitions>
看到以上代碼就ok!?2?-?<definitions?xmlns="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?-?<message?name="sayHello">
?5???<part?name="arg0"?type="xsd:string"?/>?
?6???</message>
?7?-?<message?name="sayHelloResponse">
?8???<part?name="return"?type="xsd:string"?/>?
?9???</message>
10?-?<portType?name="Hello">
11?-?<operation?name="sayHello"?parameterOrder="arg0">
12???<input?message="tns:sayHello"?/>?
13???<output?message="tns:sayHelloResponse"?/>?
14???</operation>
15???</portType>
16?-?<binding?name="HelloPortBinding"?type="tns:Hello">
17???<soap:binding?style="rpc"?transport="http://schemas.xmlsoap.org/soap/http"?/>?
18?-?<operation?name="sayHello">
19???<soap:operation?soapAction=""?/>?
20?-?<input>
21???<soap:body?use="literal"?namespace="http://jdk.study.hermit.org/client"?/>?
22???</input>
23?-?<output>
24???<soap:body?use="literal"?namespace="http://jdk.study.hermit.org/client"?/>?
25???</output>
26???</operation>
27???</binding>
28?-?<service?name="HelloService">
29?-?<port?name="HelloPort"?binding="tns:HelloPortBinding">
30???<soap:address?location="http://localhost:8080/HelloService"?/>?
31???</port>
32???</service>
33???</definitions>
客戶端寫法照舊
呵呵,這下大家滿意了吧。。。。。。。。。
有沖動想把項目里的xfire撤掉了。。。。。。。。。。。。。。。。。