java ws_Java开发WebService(使用Java-WS)

前言:

初学Java,因为工作需要,直接跳到开发WebService。以前用.NET开发过WebService,对比一下,Java的WebService开发部署难度高了不止一个档次。网上的教程各式各异,刚开始我学着使用XFire开发,但是配置过程已经把我给搞糊涂了,弄了两天没搞好。

最后使用Java1.6的新特性,Java-WS专门用于开发WebService,发现这个方法特别的简单(相对而言),但是其中还是有不少注意事项,我这篇主要是参考http://www.cnblogs.com/lee0oo0/archive/2013/01/25/2876357.html,但是我在参考这篇文章时遇到了不少的问题,会在我的文章里面指出来。

有关WebService的名词定义,建议自行百度,或者参考http://blog.csdn.net/icecream0/article/details/6955524。

以下开始讲解如何在MyEclipse中开发一个WebService。

内容:

我使用的是MyEclipse 2014,tomcat是内置的。

第一部分:如何在本地发布一个WebService。

1、新建一个Web Service Project

a386f5bef4bae2fc466b1e7e7390b292.png

2、我的工程名是“EbonyWS”,WebService Framework选择JAX-WS。

d8ed521ecffc0ac1aa86599a012a234e.png

3、定义一个Java包,存放服务端的类与接口等。新建一个Java包:com.ebony.service

4、先定义一个服务需要具有的方法的接口。新建一个接口:IHello

1 packagecom.ebony.service;2

3 /**

4 * 服务需要具备的接口方法5 *@authorAdministrator6 *7 */

8 public interfaceIHello {9 /**

10 * 必须具备的方法sayHello11 *@paramname 姓名12 *@return

13 */

14 publicString sayHello(String name);15 }

5、定义此接口的一个实现类,实现类里的方法可以理解成最终调用WebService的具体函数所在地。新建一个类:HelloImpl

1 packagecom.ebony.service;2

3 /**

4 * 具体的方法实现,最终调用的方法所在地5 *@authorAdministrator6 *7 */

8 public class HelloImpl implementsIHello {9

10 @Override11 publicString sayHello(String name) {12 String string = "Congratulations! "

13 + name + ", you have finished your first WebService!";14 returnstring;15 }16

17 }

6、部署工程到服务器上。可以搜索菜单"Add and Remove Project Deployments..."或者点击按钮。

搜索:

0bcdeef4cae83ec71e0a039cbf23aef9.png

或点击按钮:

4458e515dee1496aeea4983ca859ef88.png

7、在打开的"Project Deployments"菜单里,单击"Add"。

35b89ddf29bef56a739223702a3f523f.png

8、在弹出的菜单中选择"MyEclipse Tomcat",内置的Tomcat,也可以选择自己的Tomcat位置,不过选择内置的更不容易出错。

5772c49852e42e78f03566a55491c0d5.png

添加之后的显示:

2d52a27916fba4fff2113029be8abcd0.png

9、配置好工程的Tomcat之后,启动服务

81b7d929cef81a8391bf944177213a44.png

启动服务成功,会在Console中显示,此时可以确认以上部署服务过程无误:

b32c94bf043de4abf449827b899122ef.png

10、设置Tomcat服务器的端口。因为默认是8080端口,往往这个端口是被占用了的,这样会造成发布WebService不成功。此时需要先修改"Windows-Perferences-MyEclipse-Servers-Integated Sandbox-MyEclipse Tomcat 6"里的Port Number为8089(可自行选择,不要选择被占用的)。

如果你是内置额Tomcat,修改这里就行了,如果是自己下载的Tomcat,还需要修改Tomcat目录下的"conf-server.xml"下的port为8089。

11、部署Tomcat之后,开始在此服务上发布WebService

25d66fd7dc28085eee14a3976af7571e.png

Strategy选择下面的一项,可以为工程生成wsdl文件。

29d2e3b2d431485b6935b604d408b08f.png

下图中,1处需要选择一个实现类,我们这里选择我们已经写好的实现类"com.ebony.service.HelloImpl",并勾选2处的"Generate WSDL in project"。

13883ded497a5aff2c39987ee7611388.png

发布之后会在我们的包"com.ebony.service"生成一个类HelloImplDelegate,作为提供给外部调用的类。

ffafa045c4e87fd8e1adc40528344736.png

还会为工程生成一个wsdl目录,双击打开"HelloImplService.wsdl"文件。

c50117d614f395fc6ccb7464dd42413e.png

修改红框内的端口"8080"为"8089",HelloImplPort里的地址,就是我们可以提供给外部调用的WebService地址。

8719e4d088cd84b88d8efa4a535c45b9.png

12、在浏览器中打开地址"http://localhost:8089/EbonyWS/HelloImplPort",显示一下内容说明WebService发布成功。

0a2e4b739d4e06c4c2ae709d0782d697.png

第二部分:如何在Java中调用此WebService

1、新建一个EbonyClient的Java Project。

2、导入WebService。

4737a77b31622d812c3e1cbe3977561e.png

3、在红框内填入之前的WebService地址,注意要加上"?wsdl",即:

http://localhost:8089/EbonyWS/HelloImplPort?wsdl

60d29cfc42ca09aedc7652fec6df7d60.png

导入之后我们会发现,com.ebony.service这个包会导入到了我们的EbonyClient中。

d14db4d61d5eb44223182a20ef2c540f.png

4、新建一个客户端包:com.ebony.client。

5、新建一个客户端类:Client.java

1 packagecom.ebony.client;2

3 importcom.ebony.service.HelloImplDelegate;4 importcom.ebony.service.HelloImplService;5

6 /**

7 * 调用WebService的客户端8 *@authorAdministrator9 *10 */

11 public classClient {12 public static voidmain(String[] args) {13 //实例化服务

14 HelloImplService helloImplService = newHelloImplService();15 //实例化服务委托

16 HelloImplDelegate helloImplDelegate =helloImplService.getHelloImplPort();17 //使用委托调用服务的方法

18 System.out.println(helloImplDelegate.sayHello("ebony"));19 }20 }

至此调用服务的工程开发完成。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值