Java开发WebService(使用Java-WS)

前言:html

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

最后使用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。tomcat

如下开始讲解如何在MyEclipse中开发一个WebService。服务器

 

内容:ide

我使用的是MyEclipse 2014,tomcat是内置的。
第一部分:如何在本地发布一个WebService。函数

一、新建一个Web Service Projectspa

二、个人工程名是“EbonyWS”,WebService Framework选择JAX-WS。.net

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

四、先定义一个服务须要具备的方法的接口。新建一个接口:IHello

 1 package com.ebony.service;
 2 
 3 /**
 4  * 服务须要具有的接口方法
 5  * @author Administrator
 6  *
 7  */
 8 public interface IHello {
 9     /**
10      * 必须具有的方法sayHello
11      * @param name    姓名
12      * @return
13      */
14     public String sayHello(String name);
15 }

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

 1 package com.ebony.service;
 2 
 3 /**
 4  * 具体的方法实现,最终调用的方法所在地
 5  * @author Administrator
 6  *
 7  */
 8 public class HelloImpl implements IHello {
 9 
10     @Override
11     public String sayHello(String name) {
12         String string = "Congratulations! " 
13                 + name + ", you have finished your first WebService!";
14         return string;
15     }
16 
17 }

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

搜索:

或点击按钮:

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

 

八、在弹出的菜单中选择"MyEclipse Tomcat",内置的Tomcat,也能够选择本身的Tomcat位置,不过选择内置的更不容易出错。

添加以后的显示:

九、配置好工程的Tomcat以后,启动服务

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

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

若是你是内置额Tomcat,修改这里就好了,若是是本身下载的Tomcat,还须要修改Tomcat目录下的"conf-server.xml"下的port为8089。

    <Connector port="8089" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

十一、部署Tomcat以后,开始在此服务上发布WebService

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

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

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

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

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

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

 

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

一、新建一个EbonyClient的Java Project。

二、导入WebService。

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

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

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

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

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

 1 package com.ebony.client;
 2 
 3 import com.ebony.service.HelloImplDelegate;
 4 import com.ebony.service.HelloImplService;
 5 
 6 /**
 7  * 调用WebService的客户端
 8  * @author Administrator
 9  *
10  */
11 public class Client {
12     public static void main(String[] args) {
13         //实例化服务
14         HelloImplService helloImplService = new HelloImplService();
15         //实例化服务委托
16         HelloImplDelegate helloImplDelegate = helloImplService.getHelloImplPort();
17         //使用委托调用服务的方法
18         System.out.println(helloImplDelegate.sayHello("ebony"));
19     }
20 }

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

相关文章
相关标签/搜索