现在的位置: 首页 > 综合 > 正文

Java:eclipse下开发webservice教程

2017年10月19日 ⁄ 综合 ⁄ 共 2616字 ⁄ 字号 评论关闭

1           境准

     wtp-all-in-one-sdk-R-1.5.4-win32个是eclipseweb开发插件

     jakarta-tomcat-5.0.30

    下载axis-src-1_4.zip

2           环境配置

    配置tomcat关联到你的eclipse

*         axis-1_4\webapps\axis\WEB-INF\lib中的文件复制到$TOMCATHOME$\common\lib

3           开发、发布websevice

      *         新建一个动态web
project
名为eclipse4WS

*         添加Axislib下的jar包到工程中

*         改变class文件的输出路径为

*         src下编写一个简单的java类作为webservice

package service;

public class HelloService
{

     public String
sayHello(String username) {

            return "Hello:
"
 + username;

     }

}

*         发布该类为webservice

      在向导中调整如下选项,尤其是选择到test
service
,点击

next

   选择供访问的方法sayHello,点击next

一路点击next,直到出现start
server
按钮,点击运行tomcat,然后点击Finish按钮完成发布。

点击webservice Explore中的Operations中的sayHello方法

     username中输入测试数据:little
gril
,点击Go

   status栏中出现访问该service的返回值:Hello:
little girl
,表示service已经发布成功并且可以访问

4           编写并运行客户端程序

l         手动编写

src目录下建立如下java类:

public class HelloClient
{

       /**

        * @param args

        */

 

public static void main(String[]
args) {

              // TODO Auto-generated
method stub

              String username = "guest";

              if (args.length !=
0) {

                     username = args[0];

              }

//WebServiceLocation,在上图中可以找到,也可以在wsdl文件中找到。

              String endpoint ="http://localhost:8080/eclipse4WS/services/HelloService";

              Service service = new Service();

try {

                     Call call = (Call) service.createCall();

                     call.setTargetEndpointAddress(endpoint);

//要访问的method

                     call.setOperationName(newQName("urn:HelloService""sayHello"));

//传参

                     String returnValue = (String) call

                                   .invoke(new Object[]
{ username });

                     System.out.println(returnValue);

catch (ServiceException e) {

                     // TODO Auto-generated
catch block

                     e.printStackTrace();

              } catch (RemoteException
e) {

                     // TODO Auto-generated
catch block

                     e.printStackTrace();

              }

 

       }

 

}

l         你也可以运用wtp插件来生成一个客户端proxy

(1)    在向导的client部分,选择slider

install client,然后按照默认一路next,直到Finish。这样eclipse就为你创建了一个client工程eclipse4WSClient

      

(2)    打开这个工程的src下的service目录,你可以看到一个HelloServiceProxy类,这就是自动创建好的代理类,该类中封装好了要访问的HelloServiceendpoint以及发布的方法及参数类型、返回值,你只需要编写一个测试类实例化这个proxy类,并调用你想访问的webservice的方法就可以了。如:

public class HelloClient
{

       public static void main(String[]
args) 
throwsRemoteException, MalformedURLException
{

              HelloServiceProxy proxy = new HelloServiceProxy();

              System.out.println(proxy.sayHello("zhii"));

       }

l         运行HelloClient as
Java Allication
,你就可以看到控制台的返回信息了。

抱歉!评论已关闭.