您的位置:首页 > 其它

3、使用JaxWs开发Web Service

2016-07-05 21:10 357 查看
1、服务端开发

1.1 新建web项目HelloJaxWsService



1.2  SEI接口

编写SEI(Service Endpoint Interface),SEI在webservice中称为portType,在java中称为接口。

public interface IHelloWorldDao {

public String sayName(String name);

}

2.3 SEI接口的实现类

 SEI的实现类中服务方法,可以对外由客户端通过网络协议访问。

@WebService
public class HelloWorldDaoImpl implements IHelloWorldDao {

@Override
public String sayName(String name) {
return "Hello: " + name;
}

}

2.4 发布Web Service

public class PublicTest {
public static void main(String[] args) {
// 发布服务
String address = "http://localhost:7888/helloWorld";
Endpoint.publish(address, new HelloWorldDaoImpl());
}
}
2.5 访问发布的Web Service

在浏览器输入地址:http://localhost:7888/helloWorld



2、客户端开发

2.1 新建Java项目,进行webService服务的调用



2.2 使用wsimport生成服务端接口的调用代码

wsimport.exe在jdk的bin目录中

wsimport通过wsdl说明书的地址生成客户端的调用代码。

wsimport.exe位于JAVA_HOME\bin目录下.

常用参数为:

-s <目录> -
将生成.java文件。

-p <生成的新包名> -将生成的类,放于指定的包下。

(wsdlurl)  http://server:port/service?wsdl,必须的参数。



2.3  编写测试代码,进行WebService的调用

       2.3.1  第一种调用方法

public class ClientTest1 {
public static void main(String[] args) {
// 服务视图
HelloWorldDaoImplService helloWorldDaoImplService = new HelloWorldDaoImplService();

// portType
HelloWorldDaoImpl helloWorldDaoImplPort = helloWorldDaoImplService
.getHelloWorldDaoImplPort();
// 调用webService提供的服务
String str = helloWorldDaoImplPort.sayName("zhang");
System.out.println(str);
}
}
 
      2.3.2  第一种调用方法的结果   



       2.3.3 第二种调用方法 

public class ClientTest2 {
public static void main(String[] args) throws MalformedURLException {
// wsdl地址
URL wsdlDocumentLocation = new URL(
"http://localhost:7888/helloWorld?wsdl");
// serviceName
QName serviceName = new QName("http://daoImpl.jaxwsservice.com/",
"HelloWorldDaoImplService");
// 通过手动指定wsdl地址和服务名称来创建服务视图
Service service = Service.create(wsdlDocumentLocation, serviceName);
// 接口的class来创建接口,然后调用服务方法
HelloWorldDaoImpl port = service.getPort(HelloWorldDaoImpl.class);
// 通过服务来调用方法
String str = port.sayName("zhang");
System.out.println(str);
}
}
       2.3.4 第二种调用方式的结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息