Axis2发布webservice(3)--axis2生成wsdl文件,并利用wsdl文件来生成WebService的Java代码

一、利用axis2生成wsdl文件

1、file->New->Other->Axis2 Code Generator

2、选择第2个,点击next

3,先点击add folder->浏览选择WebService项目下的bin文件夹,然后在fully Qualified Class name中填入类路径(包括包名)

然后点击Test 测试是否正确。

点击Next

4、可以看到即将发布的WebService名称和命名空间

5、继续Next,选择wsdl文件保存目录

这样services.wsdl文件就生成了。

二、用axis2工具根据wsdl文件生成java文件,并编写客户端调用的代码

1、file->new->other->axis2 code generetor

2、选择第1项,根据wsdl文件生成Java代码,点击Next

3、然后选择第一步生成的wsdl文件

4、点击Next,就可以看到你要生成指定方法的代码的选项,我选择的是第2项

注意的是在选择PortName的时候,不同的选项将会生产不同的调用代码,其调用方式也略有不同

5、点击Next,选择代码输出保存的目录,最好不要选择WebService的目录,换一个新的Javaproject目录,不然会跟之前的文件冲突,然后点击Finish

6、打开输出的文件夹,发现多出了很多文件

三、 编写客户端代码

package test;

import java.rmi.RemoteException;
import java.util.List;

import com.hoo.service.EditUser;
import com.hoo.service.EditUserResponse;
import com.hoo.service.GetUser4Array;
import com.hoo.service.GetUser4ArrayResponse;
import com.hoo.service.ManagerUserServiceStub;
import com.hoo.service.xsd.User;

public class ManagerUserServiceClient {

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

        /* ManagerUserServiceStub文件对应的是整个WebService
         * 该类中有对应于WebService中public方法的方法
         * 通过实例化一个该类的对象,并调用相应的方法,就可以调用WebService的方法
         * */
        ManagerUserServiceStub stub = new ManagerUserServiceStub();

        /*
         * EditUser对应的是WebService的方法,对于WebService的每个public方法,生成一个以该方法命名的类
         * 但是首字母会大写
         * 该类中有相应的方法editUser
         * */
        EditUser editUser = new EditUser();

        User user = new User();
        user.setAddress("China");
        user.setEmail("[email protected]");
        user.setName("hww");
        user.setId(1);

        User user1 = new User();
        user1.setName("jsy");
        user1.setEmail("[email protected]");
        user1.setId(47);
        user1.setAddress("China");

        /*
         * EditUser的对象要通过set方法设置方法的参数
         * 比如,eidtUser(User user)方法有一个User类型的参数,那么在对应的类里面,就会有对应的设置参数的
         * 方法
         * */
        editUser.setUser(user);

        /*
         * 对于每个方法会生成一个对应的response类
         * 通过stub对象调用该方法,方法的参数是对应类的对象
         * 返回值会通过response对象返回
         * */
        EditUserResponse eur = stub.editUser(editUser);

        //获取返回值
        User returnUser = eur.get_return();
        System.out.println(returnUser.getName());

        //调用其他方法
        GetUser4Array getUser4Array = new GetUser4Array();
        getUser4Array.setJ(3);
        GetUser4ArrayResponse response1 = stub.getUser4Array(getUser4Array);
        User[] user_list = response1.get_return();
        for(User u:user_list){
            System.out.println(u.getId());
        }
    }

}

输出结果是:hww

22

23

24

Axis2发布webservice(3)--axis2生成wsdl文件,并利用wsdl文件来生成WebService的Java代码

时间: 2024-12-10 00:00:59

Axis2发布webservice(3)--axis2生成wsdl文件,并利用wsdl文件来生成WebService的Java代码的相关文章

替换文件中某个字符串并写入新内容(Java代码实现)

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.InputStream; import java.io.InputStreamReader; /* * 替换文件(如果该文件含有子目录,则包括子目录所有文件)中某个字符串并写入新内容(J

axis2处理webservice接口的wsdl文件生成java代码

第一步: 下载axis2,我下载的版本是[axis2-1.6.2-bin.zip],要把文件夹解压 第二步: 打开命令窗口,进入到axis的路径下bin目录 第三步: 执行语句:./wsdl2java.sh -uri 文件.xml(wsdl文件) -o 生成路径 -p 包结构(com.b.c) 就可以在设置的[生成路径]下找到对应[包结构]的java代码 [~/work/axis2-1.6.2/bin]$./wsdl2java.sh -uri 文件.xml(wsdl文件) -o 生成路径 -p 

Axis2发布webservice(4)—利用XML文件同时发布多个webservice和跨多个WebService管理Session

我们需要ServiceGroupContext保存跨越多个webservice的session信息:同时需要设置services.xml文件的中service的scope属性为application 一.编写两个webservice: LoginServiceApplication.java代码如下: package com.hoo.service; import org.apache.axis2.context.MessageContext; import org.apache.axis2.c

axis2 发布webservice

一.简介 Apache Axis2是下一代 Apache Axis.Axis2 虽然由 Axis 1.x 处理程序模型提供支持,但它具有更强的灵活性并可扩展到新的体系结构.Axis2 基于新的体系结构进行了全新编写,而且没有采用 Axis 1.x 的常用代码.支持开发 Axis2 的动力是探寻模块化更强.灵活性更高和更有效的体系结构,这种体系结构可以很容易地插入到其他相关 Web 服务标准和协议(如 WS-Security.WS-ReliableMessaging 等)的实现中.Apache A

Axis2发布webservice(4)—webservice的异步调用

一,发布一个webservice,代码如下 package com.hoo.service; public class AsynchronousService { public String execute() throws InterruptedException{ //让当前线程睡眠5钟,展示异步调用 Thread.sleep(5000); return "done"; } } 二.发布Service,参见前面教程,不多讲 三.RPC方式异步调用: import java.io.I

Eclipse中Axis2发布WebService

介绍:Axis是apache下一个开源的webservice开发组件. l  开发工具下载: 1.  eclipse的Java EE版本.下载地址:http://www.eclipse.org/downloads/ 2.  axis2.下载地址:http://axis.apache.org/axis2/java/core/download.cgi 3.  eclipse的两个axis2插件: Axis2_Codegen_Wizard Axis2_Service_Archiver. 下载地址:ht

Axis2发布webservice(2)--利用eclipse的axis2插件打包为arr发布

一.编写webservice的java文件 在eclipse中新建java project,然后新建一个java类,我这里命名为:ManagerUserService.java,源代码: package com.hoo.service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import

JAVA利用axis2发布webservice

Axis2与CXF是现在很主流的WebService开发框架(java6也已经支持了),项目上还都是基本上用前两种做开发,今天记录一下我安装Axis2插件在eclipse中的安装和写一个简单的测试代码. 一. eclipse的版本为Luna Release (4.4.0) Axis2的版本是1.6.2 下载地址为: 1).Axis2 Binary Distribution(1.6.2):http://mirror.bjtu.edu.cn/apache//axis/axis2/java/core/

webservice发布服务:AXIS2及客户端调用

1.Axis2: 到官网下载axis2的压缩包. 解压后: 1.将lib文件下的jar包复制到项目中 2.在web-inf下创建services->META-INF->services.xml,并将压缩包中的services.list.version-1.7.4.aar复制到services文件夹下 3.编写services.xml文件,配置发布的接口,格式如下: <?xml version="1.0" encoding="UTF-8"?>