创建基于JAX-WS的WebService的服务端及客户端

来源:互联网 发布:淘宝优惠券每人限领 编辑:程序博客网 时间:2024/05/09 06:12

整理下WebService的使用方法,理论就不说了,一搜一大堆,主要是快捷的搭建和使用。

这里使用的是JDK1.6.0_45

1、服务端

创建一个Java工程,首先编写一个接口HelloWebService 使用注解

package com.ws;import javax.jws.WebService;@WebService  public interface HelloWebService {        public String sayHello();  }
接口的实现
package com.ws;import javax.jws.WebMethod;import javax.jws.WebService;@WebServicepublic class HelloWebServiceImpl implements HelloWebService {@WebMethodpublic String sayHello() {return "Hello, WebService";}}

然后是Main方法

package com.main;import javax.xml.ws.Endpoint;import com.ws.HelloWebServiceImpl;public class Test {public static void main(String[] args) {Endpoint.publish("http://localhost:8080/service/helloWebService",new HelloWebServiceImpl());}}

在浏览器中访问http://localhost:8080/service/helloWebService?wsdl

<?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.6 in JDK 6.   --> - <!--  Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6.   --> - <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ws.com/" name="HelloWebServiceImplService">- <types>- <xsd:schema>  <xsd:import namespace="http://ws.com/" schemaLocation="http://localhost:8080/service/helloWebService?xsd=1" />   </xsd:schema>  </types>- <message name="sayHello">  <part name="parameters" element="tns:sayHello" />   </message>- <message name="sayHelloResponse">  <part name="parameters" element="tns:sayHelloResponse" />   </message>- <portType name="HelloWebServiceImpl">- <operation name="sayHello">  <input message="tns:sayHello" />   <output message="tns:sayHelloResponse" />   </operation>  </portType>- <binding name="HelloWebServiceImplPortBinding" type="tns:HelloWebServiceImpl">  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> - <operation name="sayHello">  <soap:operation soapAction="" /> - <input>  <soap:body use="literal" />   </input>- <output>  <soap:body use="literal" />   </output>  </operation>  </binding>- <service name="HelloWebServiceImplService">- <port name="HelloWebServiceImplPort" binding="tns:HelloWebServiceImplPortBinding">  <soap:address location="http://localhost:8080/service/helloWebService" />   </port>  </service>  </definitions>

2、客户端使用JDK的bin目录下的wsimport创建需要的文件,请配置好JAVA_HOME,CLASS_PATH
JAVA_HOME:    D:\Program Files\Java\jdk1.6.0_45CLASS_PATH:   .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

在命令行中输入
wsimport -verbose -p com.ws -keep http://localhost:8080/service/helloWebService?wsdl

在C:\Documents and Settings\用户名 目录中找到com/ws下的所有文件创建一个Java工程将com目录下的所有文件拷贝进去,创建一个测试类
package com.main;import com.ws.HelloWebServiceImpl;import com.ws.HelloWebServiceImplService;public class WsClient {public static void main(String[] args) {HelloWebServiceImplService uisis = new HelloWebServiceImplService();HelloWebServiceImpl uis = uisis.getHelloWebServiceImplPort();System.out.println(uis.sayHello());}}

返回结果为Hello, WebService
0 0
原创粉丝点击