近日朋友问起Java开发WebService的问题,于是为其写了一份简单说明,贴于博客,与各位朋友分享。
一、
开发环境
从
Java6
开始,
JDK
中已经支持用
Java
开发
WebService
应用了,不必选用第三方包。因此建议授课软件环境如下:
软件及其版本
|
必需
|
安装顺序
|
JDK1.6u18
|
必需
|
1
|
Eclipse3.5 JavaEE
版
|
必需
|
2
|
如果软件下载和安装有问题,可另行沟通。
二、
样例说明
下面是一个
Java6
开发
Web Service
的入门例子,项目结构如下:
完整例子共分为三部分
l
服务器端在包
jerry.ws
中(手工编写)
l
客户端在包
jerry.wsclient
中(自动生成)
l
启动客户端入口在
jerry.RunDemo
类中(手工编写)。
一、
样例使用步骤
1.
新建
Java
项目
2.
将服务器端代码加入到项目中
Java6WS代码如下:
package jerry.ws;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class Java6WS {
public String doSomething() {
return "这是基于Java6的WebService";
}
public static void main(String[] args) {
String url= "http://localhost:8080/AxisWS/jerry.ws.Java6WS";
Endpoint.publish(url,new Java6WS());
}
}
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class Java6WS {
public String doSomething() {
return "这是基于Java6的WebService";
}
public static void main(String[] args) {
String url= "http://localhost:8080/AxisWS/jerry.ws.Java6WS";
Endpoint.publish(url,new Java6WS());
}
}
3.
运行服务
1)
启动
jerry.ws.Java6WS
类
启动后控制台信息如下:
注意:维持现状,不要关闭运行。
2)
查看
WSDL
该步骤是向学生解释
WSDL
中
XML
信息。
打开浏览器,在地址栏里输入
运行结果如下:
4.
调用服务
Java6
提供生成
WebService
客户端代码工具。
注意,在生成前需要先启动服务端。如果已经在启动,就不需要重新启动。
1)
进入
src
目录
这里的
src
是指你当前项目的
src
目录。
2)
运行生成客户端命令
wsimport
wsimport –p jerrry.wsclient –keep
http://localhost:8080/AxisWS/jerry.ws.Java6WS?wsdl
3)
刷新
Eclipse
项目
为了将生成的代码引入项目,需要刷新一下项目。
客户端代码生成后一般不宜自行改动。一般做法是,如果服务发生了变化,可以用此方法重新生成一下。
4)
调用客户端
客户端实际上可以看做是
WebService
的代理类。所以使用
WebService
,从代码上就是使用客户端代理类。
jerry.RunDemo
类代码如下:
package jerry;
import jerry.wsclient.Java6WS;
import jerry.wsclient.Java6WSService;
public class RunDemo {
/**
* @param args
*/
public static void main(String[] args) {
Java6WS java6WS = new Java6WSService().getJava6WSPort();
String returnContent = java6WS.doSomething();
System.out.println(returnContent);
}
}
import jerry.wsclient.Java6WS;
import jerry.wsclient.Java6WSService;
public class RunDemo {
/**
* @param args
*/
public static void main(String[] args) {
Java6WS java6WS = new Java6WSService().getJava6WSPort();
String returnContent = java6WS.doSomething();
System.out.println(returnContent);
}
}
5)
启动测试
启动
jerry.RunDemo
类,注意,仍然要保持服务是启动状态。
6)
OK
,大功告成。
本文转自 王杰瑞 51CTO博客,原文链接:http://blog.51cto.com/wangjierui/269703,如需转载请自行联系原作者