webservice demo

使用axis2进行webservice编程也是比较容易的,不过我在过程中还是碰到了些问题,对于该问题大家进行交流。
一、下载最新的axis2包axis2-1.6.2-bin.zip
下载eclipse开发插件工具axis2-eclipse-codegen-wizard.zip和axis2-eclipse-service-archiver-wizard.zip解压,将解压后的文件axis2-eclipse-codegen-wizard和axis2-eclipse-service-archiver-wizard放入Myeclipse的安装目录plugins下面。启动Myeclipse。从名称可以看到
 
表示成功添加,第一个表示代码生成器,第二个为服务打包向导。
 
当不成功时候可能差2个jar包
D:\Program Files\MyEclipse 6.5\myeclipse\eclipse\plugins\Axis2_Codegen_Wizard_1.3.0
在plugin.xml该文件中加入
     </library>
         <library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">
         <export name="*"/>
      </library>
            <library name="lib/backport-util-concurrent-3.1.jar">
         <export name="*"/>
      </library>
在axis2找到这两个jar放入该文件夹中lib中,重启myeclipse就ok。
backport-util-concurrent-3.1.jar包好像在1.4.1这个版本中有。
二、新建web工程,将axis2的lib包导入该工程lib包中。
package com.axis2.demo;
public class HelloaxisServer {
 public String sayHello(String name){    
         return "Hello axis2, " + name + "!";    
    }    
}
 
三、wsdl生成和发布
 
利用我们刚刚新增的axis2插件 code Generator进行。更具提示选项先用java代码生成wsdl文件,第二部找到需要生成的代码classes路径。
最后为wsdl文件生成路径。操作成功后检查wsdl文件是否生成。
在使用新增的axis2插件 Service Archiver 进行打包。首先进入找到打包的classes路径,后面直接跳过,在最后填写你的服务名喝类全路径名,选择发布所在方法如sayHello
最后为打包路径地址,一般为WEB-INF下。
 
发布成功后启动tomcat或其他服务器。
测试成功!
 
相关代码测试
  1.         RPCServiceClient serviceClient = new RPCServiceClient();     
  2.         Options options = serviceClient.getOptions();     
  3.         EndpointReference targetEPR = new EndpointReference("http://localhost:8888/webserviceaxis2/services/HelloaxisServer?wsdl");     
  4.         options.setTo(targetEPR);     
  5.         QName opAddEntry = new QName(http://xxx.xxx.xxx,"sayHello");     
  6.         Object[] opAddEntryArgs = new Object[] {"你好" };         
  7.         Class[] classes = new Class[] { String.class };     
  8.         System.out.println(serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0]);     
 
posted @ 2013-04-11 22:38  小文1  阅读(274)  评论(0编辑  收藏  举报