為了滿足廣大網(wǎng)友的要求,今天抽時間搞了下WebServices 在tomcat中的發(fā)布 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("準備啟動服務(wù)"); 19 Endpoint.publish("http://localhost:8080/HelloService", new Hello()); 20 System.out.println("服務(wù)啟動完畢"); 21 } 22 } 23 web service類Hello.java也是非常簡單 1
web.xml2 3 import javax.jws.WebMethod; 4 import javax.jws.WebService; 5 import javax.jws.soap.SOAPBinding; 6 7 @WebService(targetNamespace = "http://jdk.study./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./xml/ns/j2ee" 3 xmlns:xsi="http://www./2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java./xml/ns/j2ee 5 http://java./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都不要。。。。 發(fā)布,啟動服務(wù)器 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() 準備啟動服務(wù) 服務(wù)啟動完畢 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" ?>
看到以上代碼就ok!2 - <definitions xmlns="http://schemas./wsdl/" xmlns:tns="http://jdk.study./client" xmlns:xsd="http://www./2001/XMLSchema" xmlns:soap="http://schemas./wsdl/soap/" targetNamespace="http://jdk.study./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./soap/http" /> 18 - <operation name="sayHello"> 19 <soap:operation soapAction="" /> 20 - <input> 21 <soap:body use="literal" namespace="http://jdk.study./client" /> 22 </input> 23 - <output> 24 <soap:body use="literal" namespace="http://jdk.study./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撤掉了。。。。。。。。。。。。。。。。。 |
|