为了满足广大网友的要求,今天抽时间搞了下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
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
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
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!
客户端写法照旧