一、准备工作
1.下载axis2相关jar包目前最新版本为1.6.2;将axis2-1.6.2-bin.rar,axis2-1.6.2-war.zip一并下载下来,下载地址:/axis2/java/i
2.下载axis2插件axis2-eclipse-codegen-plugin-1.6.2.zipaxis2-eclipse-service-plugin-1.6.2.zip,下载地址:/axis2/java/core/tools/index.html
3安装Eclipse插件,安装成功如下图:
5.新建Web Project(axis2_Service)
axis2-1.6.2-bin\lib下的jar拷贝到axis2_Service\lib下,打开axis2-1.6.2-war.zip\axis2\WEB-INF下的confmodulesservices解压到项目(axis2_Service)WebRoot\WEB-INF下
6.修改l文件,添加如下代码:
7.添加两个类:bean类和服务类
Bean类:
package ity;
import java.io.Serializable;
public class User implements Serializable{
    /**
    *
    */
    private static final long serialVersionUID = 1L;
   
    private int id;
    private String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
要发布的服务类:
package cn.zjl.service;
import ity.User;
public class UserService {
    public User getUser(User user) {
        System.out.println("service:"+Id());
        System.out.println("service:"+Name());
        User po2 = new User();
        po2.setId(1);
        po2.setName("zjl");
        return po2;
    }
}
8.Axis2插件工具生成aar文件,发布WebService
在项目上右击->new->other
选择Axis2 Service Archiver,点击next
Class File Location选择工程路径下的classes文件,点击Next
勾选Skip WSDL项,点击next
这里没有jar文件,所以默认,点击Next
勾选Generate the service xml automatically项,点击Next
Service Name 随便写记住就行,Class name包名点类名称 点击Load会出现这个类下的所有方法名称,点击Next
调用webservice服务
Output location选择输出文件位置(具体位置根据具体而定),点击Finsh
说明成功。
刷新项目:
项目下多了个UserService.arr文件
9.启动Tomcat,在地址栏输入localhost:8080/axis2_service/services/UserService?wsdl回车,
页面是一些xml配置性东西的内容,说明WebService发布成功
10.新建客户端项目(项目名称:axis2_client),调用发布的WebService
11.使用axis2插件生成客户端代码
第一种方式:
选择第一个,Next
选择第一个,Next
将能访问的WebService接口复制进去(也可以是一个后缀名为WSDL的文件名,我们在第二种方式在谈)。点击Next
Codegen option 选择custom,勾选Generate test case(勾选此项,会生成测试类,此类需要junit.jar包)。点击Next
这里我们选择第一个,Output path 选择项目名,点击Finsh
说明生成客户端成功。
刷新项目会多成几个java类文件,我们修改UserServiceTest.java类
在这个类中添加main方法,将testgetUser方法中的代码添加到Main函数里稍作修改:
public static void main(String[] args) throws Exception {
        UserServiceTest test = new UserServiceTest();
        cn.zjl.service.UserServiceStub stub = new cn.zjl.service.UserServiceStub();// the
        cn.zjl.service.GetUser getUser6 = (cn.zjl.service.GetUser) test
                .getTestObject(cn.zjl.service.GetUser.class);
        User u=new User();
        u.setId(1);
        u.setName("曾塞燕");
        getUser6.setUser(u);
        User(getUser6);
    }
运行后控制台打印:
关掉最右边的双xx,就可以看见如下图,调用WebService成功
第二种方式生成客户端调用WebService:
在axis2_service项目上,生成WSDL,
选择第一个,Next
选择第二个,Next
Add Folder项目路径下的classes,填写Fully Qualified Class Name,点击Test Class loading…没有红叉叉,说明成功,Next
默认值,Service Name可以自己喜好改,Next
Output location选择要输出的文件位置 Finsh
说明成功
然后再客户端项目上(axis2_client)生成调用axis2_Service的WebService,跟第一种方式一样,唯一的区别在于如下图:
将路劲改成,前面我们生成的WSDL文件,如下图:
(这个WSDL文件根据你生成所在的位置而定)
测试UserServiceTest类的main方式时,如果报异常,检查一下
UserServiceStub stub=new UserServiceStub();
点击进去构造的WebService是否正确,如果不正确将其改成正确地址,也可以构造UserServiceStub stub=new UserServiceStub(“localhost:8080/axis2_service/services/UserService?wsdl”);这样子就不会报错了。
12.可以将客户端生成服务(WebService)
13.在axis2_client新建
选择第一个,Next
选择第一个,Next
选择WSDL文件,或者一个发布的WebService地址,Next
为了客户端和服务代码的区别,将Custom package name 改成sitv
勾选Generate server side code、Generate a l、Generate an Interface for Skeleton,Next
Finsh
项目多了sitv包和resources文件,将文件resources下的l和UserService.wsdl文件复制到WebRoot/Web-INF/Services/userService/META-INF下(文件目录手动构建)
修改UserService.wsdl文件
将文件内容最后几段如下代码:
Location默认生成出来的地址不对,我们改成我们具体项目发布的地址:
localhost:8080/axis2_client/services/UserService
打开l文件,最前的一段内容如下:
我们将这个class改成具体类所在的包下面:sitv.UserServiceMessageReciverInout,
<parametername=ServiceClass>sitv.UserServiceSkeleton</paramete>
修改l文件,在l文件添加如下代码:
启动tomcat,在地址栏输入:localhost:8080/axis2_client/services/UserService?wsdl页面出现,xml形式的发布WebService内容,配置成功,
Axis2_client的WebService和axis2_service发布的WebService一模一样了。区别在于axis2_client根据axis2_service发布的wsdl文件发布服务生成的代码不一样(即sitv下的java类就是服务),效果一模一样。
测试:
修改UserServiceSkeleton.java类里的getUser方法,原来代码如下:
修改后如下:
UserServiceTest类中如下:
将地址改成:
localhost:8080/axis2_client/services/UserService?wsdl

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。