jdk6下开发webservice示例

在webservice流行的今天,如何构建webservice是很多java软件开发人员都想掌握的一门技术,在jdk6以前,我们构建webservice都需要一些开源的项目作为支持,例如xfire,但是jdk6一经发布,构建一个webservice在java开发领域变得非常就简单,下面笔者就简单介绍一下,如何使用jdk6构建一个webservice,并将其发布在tomcat上。

一、创建java项目ws_test_sample,将.class文件输出到WEB-INF\classes下。

[img]http://dl.iteye.com/upload/attachment/0064/4282/84075a0a-f56f-39b3-aa00-ae1205c56bde.png[/img]


二、新建java类如下:
[code]
package com.je.ws.sample;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService(name="helloService", portName="helloServicePort", targetNamespace="http://www.javaedu.com")
public class HelloService {
@WebMethod
public String hello(String name) {
return "Hello," + name;
}
}
[/code]

三、进入到E:\eclipsespace\ws_test_sample,执行

[quote]
E:\eclipsespace\ws_test_sample>wsgen -cp .\WEB-INF\classes -s .\src -d .\src com.je.ws.sample.HelloService
[/quote]

四、生成的文件结构如下:

[img]http://dl.iteye.com/upload/attachment/0064/4280/556c0d3f-3e0a-37d7-8629-1d5116e4b53e.png[/img]

五、编写webservice服务端测试类
[code]
package com.je.ws.sample;

import javax.xml.ws.Endpoint;


public class Test {

/**
* @param args
*/
public static void main(String[] args) {
Endpoint.publish("http://127.0.0.1:8001/HelloServicePort", new HelloService());
}

}
[/code]

六、直接运行Test类,并在浏览器中输入:http://127.0.0.1:8001/HelloServicePort和http://127.0.0.1:8001/HelloServicePort?wsdl,测试webservice是否发布成功,见到如下画面,则webservice测试发布成功。


[img]http://dl.iteye.com/upload/attachment/0064/4350/c2b9db86-1661-3386-8374-e238261b163c.png[/img]


[img]http://dl.iteye.com/upload/attachment/0064/4286/23624f1a-9092-348e-9374-762079d39b22.png[/img]

如果想将webservice发布到Tomcat上,则需要按照以下步骤进行:

一、在web.xml里加入:
[code]
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>

<servlet>
<servlet-name>WSServlet</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>WSServlet</servlet-name>
<url-pattern>/helloServicePort</url-pattern>
</servlet-mapping>
[/code]

二、在WEB-INF下新建sun-jaxws.xml文件,其内容如下:
[code]
<endpoint name="HelloService" implementation="com.je.ws.sample.HelloService" url-pattern="/helloServicePort" />
[/code]

三、在E:\eclipsespace\ws_test_sample\WEB-INF\lib下加入如下四个webservice相关的jar包

[img]http://dl.iteye.com/upload/attachment/0064/4300/af39939e-7d96-34e5-b553-09acde5f8aa8.png[/img]


四、启动tomcat,访问:http://127.0.0.1:8088/ws/helloServicePort,得到如下画面:
[img]http://dl.iteye.com/upload/attachment/0064/4293/4bc54b91-3dae-3783-95f6-104959dce4a6.png[/img]

可点击http://127.0.0.1:8088/ws/helloServicePort?wsdl得到如下画面:

[img]http://dl.iteye.com/upload/attachment/0064/4348/84099068-686c-3d7b-b98d-70111d1bec82.png[/img]


此刻说明webservice在Tomcat上发布成功了!在下一篇博客里,我将告诉大家如何使用soapui来测试一个webservice,以及如何用使用java原生API通过http协议访问一个webservice。

[color=gray]如果您觉得本文对您有益,请点击博文后的google广告,对作者表示支持,谢谢![/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值