论坛首页 入门技术论坛

在Eclipse中创建基于Axis2的web services

浏览 21787 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-05-11  
SOA

 

本实验的目的是让你尽可能快的创建使用 Axis2 的服务和客户端,我们将使用一个简单的 SayHello 服务并显示给你一些创建和部署它的不同方式,以及了解 Axis2 自带的一些工具,然后我们将看看创建访问这些服务的客户端。

 

. 做好准备

 

在我们使用 Axis2 构建任何东西之前,我们将需要关注一些家务事。现在你将需要准备好你使用 Axis2 的环境,幸运的是,它只包括一些简单的步骤 :

 

    1. 软件下载准备

 

       Tomcat 下载地址 : http://www.apache.org/dist/tomcat/tomcat-5/v5.5.26/bin/apache-tomcat-5.5.26.zip

       Axis2 War 包:

http://apache.mirror.phpchina.com/ws/axis2/1_4/axis2-1.4-war.zip

       Axis2 Eclipse plug-in( 代码生成工具和打包工具 ):

http://apache.mirror.phpchina.com/ws/axis2/tools/1_4/axis2-eclipse-service-archiver-wizard-1.4.zip                       http://apache.mirror.phpchina.com/ws/axis2/tools/1_4/axis2-eclipse-codegen-wizard-1.4.zip

Eclipse+MyEclipse

可以到官方网站下载 ( 本文为 3.2 5.0GA)

 

    2. 安装

 

       1) 首先搭建开发环境,需要将下载到的 Eclipse 解压缩到一个目录 , 然后安装好 MyEclipse

2) 将下载到的 Axis2 的两个插件解压缩到 Eclipse 安装目录下的 plug-in 子目录。

<!----><!----> <!---->

然后启动 Eclipse ,并选择“ File->New->Other ”可以找到下面的这些 Wizards, 这些将是本文中用到的很重要的工具。

<!----><!----> <!---->

 

      4) 下面开始搭建 Web Services 的部署环境。将下载的 tomcat 报解压缩到一个目录。完成 web container  的安装。

5) axis2.war 包拷贝到 tomcat 安装目录下的 webapps 目录中。

6) 启动 Tomcat(windows 下为 TOMCA_HOME/bin 中的 startup.bat Linux unix 环境为 startup.sh 文件 ) ,打开浏览器输入并访问 :http://ip:8080/axis2 (或 2 http://localhost:8080/axis 2 )来查看 , 如果能看到下面的页面则说明已经安装完成。

 

<!----><!----> <!---->

二、进入开发

 

在开发环境及 Axis2 环境搭建好后,我们便可着手 Web Services 服务以及客户端的开发:

 

<!---->1. <!---->建立要发布的 Web Services

 

<!---->1)  <!----> Eclispse 中添加一个用户库命名为 axis2 ,将 axis2\lib 下的包均添加进来。

 

“Package Explorer” 窗口空白中单击右键,从右键快捷菜单中选择“ Properties” 菜单,然后在弹出的窗口中如下图示操作,最后在图中 6 所示位置处填入 axis2 lib 位置的路径即可;

 

这一步操作的目的是为了以后工程添加 axis2 所需的 jar 文件方便;

<!----><!----> <!---->

<!---->2)  <!---->建立一个 JavaProject 命名为 ws ,将 axis2 用户库加入到 build path 中。

<!----><!----> <!---->

<!---->3)  <!---->现在开始编写要发布的 WebSevice ,在 src 中建包 briup ,建立 Hello 类如下

 

package briup;

public class Hello {

   public String sayHello(String user) {

      return "Hello, " + user;

   }

}

 

<!---->2. <!---->发布 Web Services

 

打包要发布的 Service Eclipse New --> File --> Other --> Axis2 wizards --> Axis2 Services Archiver ,按照向导选择刚建立的类编译后的 class 文件。

 

<!----><!----> <!---->

<!---->1)      <!---->选择 class 文件目录,注意,不是 java 源文件,而是 classes 目录。

<!----><!----> <!---->

 

<!---->2)      <!---->连按两次 “Next>” ,选中 “Generate the service xml automatically”

<!----><!----> <!---->

 

<!---->3)      <!---->按下一步,输入 service 名称和类名;

 

<!----><!----> <!---->

 

<!---->4)      <!---->按下一步,输入 service 文件的保存路径和文件名,完成。

 

<!----><!----> <!---->

 

这里将保存路径设为 C 盘,文件名为 ws ,按完成保存成功。这时侯切换到保存路径会发现新增一文件为 ws.aar ,将其拷贝到 Tomcat 5.5\webapps\axis2\WEB-INF\services 目录下,重新打开 http://localhost:8080/axis2/services/listService 就会发现 AccountService 已经发布成功,现在就可以应用这个 Web 服务了。

 

<!----><!----> <!---->

 

<!---->3. <!---->测试

 

通过 WSDL 文件生成 CallbackHandler.java AccountServiceStub.java

 

<!---->1)  <!---->New --> File --> Other --> Axis2 wizards --> Axis2 Code Generator

 

<!----><!----> <!---->

 

<!---->2)  <!---->选择 Generate Java source code from a WSDL file ,按下一步

 

<!----><!----> <!---->

 

<!---->3)  <!----> Browse 选择或输入 wsdl 文件位置,按下一步

 

到现在为止,我们并未自行编写以及生成 WSDL 文件。当 web service 发布后即可通过访问 http://localhost:8080/axis2/services/ws?wsdl 就可以得到 wsdl 文件。既然如此,我们可以在地址栏中直接输入 URL

 

 

<!----><!----> <!---->

 

<!---->4)  <!---->使用默认的配置,按下一步。在弹出的新窗口中,然后选择生成文件的存放路径,完成两个 Java 文件的生成。

<!----><!----> <!---->

<!----><!----> <!---->

 

<!---->5)  <!---->在工程目录按 F5 刷新,就可以看到刚生成的文件。如图:

 

<!----><!----> <!---->

<!---->6)  <!---->编写服务测试程序 WsTest.java 如下:

 

package briup;

 

public class WsTest {

    public static void main(String[] args) throws Exception {

      WsStub stub= new WsStub( "http://localhost:8080/axis2/services/ws" );

       WsStub.SayHello sayHello= new WsStub.SayHello();

       sayHello.setUser( "briup" );

       WsStub.SayHelloResponse res=stub.sayHello(sayHello);

       System. out .println(res.get_return());

    }

}

 

运行结果如下:

 

<!----><!----> <!---->

在执行的时侯,切记要将杀毒软件或防火墙软件关闭。否则执行时出现以下报错信息:

 

<!----><!----> <!---->

   发表时间:2008-06-20  
图片都没有,不过也影响不大。
0 请登录后投票
   发表时间:2008-06-23  
当前编辑博文时直接从 word 中拷贝的,图片拷贝时没了
0 请登录后投票
   发表时间:2008-07-10  
不知道 services.xml  是怎么得到的
0 请登录后投票
   发表时间:2008-07-21  
既然是新手贴,能否将图片传上来?
0 请登录后投票
   发表时间:2008-07-30  
总是报错:invocationTargetException
0 请登录后投票
   发表时间:2008-11-17  
看来楼主已经很久没上来看过了,我也一直在报那个错:invocationTargetException
0 请登录后投票
   发表时间:2008-11-22  
在axis2-1.4.1-war\axis2\WEB-INF\lib目录下,
复制backport-util-concurrent-3.1.jar和geronimo-stax-api_1.0_spec-1.0.1.jar
这两个文件至eclipse\plugins\Axis2_Codegen_Wizard\lib
下,同时要编辑eclipse\plugins\Axis2_Codegen_Wizard下的plugin.xml,
将这两个文件添加进去
(复制粘贴两项,修改jar文件名为新拷入的文件名即可).


eclipse -clean

再使用codegen插件即可正常生成代码
0 请登录后投票
   发表时间:2009-01-20  
zhangjq 写道
看来楼主已经很久没上来看过了,我也一直在报那个错:invocationTargetException

invocationTargetException 应是插件的bug问题,换一个底版的codgen插件就OK了,此问题比较普遍,楼上的解决办法并非总是好用。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics