IDEA利用自带Axis工具和wsdl文件反向生成服务端客户端代码图文详解

yizhihongxing

下面我来详细讲解如何利用IntelliJ IDEA自带的Axis工具和WSDL文件反向生成服务端和客户端的代码。

1. 准备工作

  • 安装IntelliJ IDEA IDE,并安装Axis2插件。
  • 准备好WSDL文件,或者通过已知的Web Service获取WSDL文件URL。

2. 设置Axis2插件

如果你还没有安装Axis2插件,可以按照如下步骤安装:

  • 打开IntelliJ IDEA,点击菜单栏的【File】,选择【Settings】。
  • 在Settings对话框中,展开【Plugins】选项,点击【Browse repositories】按钮。
  • 在搜索框中输入“Axis2”,搜索出插件后点击【Install】按钮,等待安装完成后,重启IDE。

3. 生成服务端代码

  • 打开IntellJ IDEA,创建一个新项目,选择【Java Enterprise】以及【Web Application】,点击【Next】按钮。
  • 输入项目名称,并确定项目保存路径,然后点击【Next】按钮。
  • 选择项目类型,这里选择【None】,然后点击【Finish】按钮。
  • 在项目目录下新建目录和包,分别命名为“services”和“com.example.webservice”。
  • 把WSDL文件拷贝到项目中的“services”目录下,并右键点击WSDL文件,选择“Generate Java Code from WSDL...”。
  • 在“Generate Java Code from WSDL”对话框中,勾选“Server Side”,并选择代码的输出目录,然后点击【OK】按钮。
  • 等待代码生成完毕,就可以看到在“com.example.webservice”包中生成了与WSDL文件对应的Java类。

4. 生成客户端代码

  • 同样右键点击之前拷贝到“services”目录下的WSDL文件,选择“Generate Java Code from WSDL...”。
  • 在“Generate Java Code from WSDL”对话框中,勾选“Client Side”,并选择代码的输出目录,然后点击【OK】按钮。
  • 等待代码生成完毕,就可以看到在生成的目录中生成了与WSDL文件对应的Java类。

示例一

下面以一个简单的加减乘除计算器的WebService为例,展示如何使用上述流程生成WebService的服务端和客户端代码。

首先,我们编写一个目标加减乘除的Java类:

public class Calculator {

  public int add(int a, int b) {
    return a + b;
  }

  public int subtract(int a, int b) {
    return a - b;
  }

  public int multiply(int a, int b) {
    return a * b;
  }

  public int divide(int a, int b) {
    return a / b;
  }
}

然后,我们通过以下步骤生成服务端和客户端代码:

  1. 编写对应的WSDL文件,例如http://localhost:8080/calculator?WSDL
  2. 添加以上的Java类,把其声明为WebService,如下:
@WebService
public class Calculator {
  // ...
}
  1. 右键WSDL文件,选择“Generate Java Code from WSDL...”,勾选“Server Side”,然后选择对应的输出目录,点击【OK】,等待代码生成完毕即可在指定的目录中看到对应的Java类。
  2. 右键WSDL文件,选择“Generate Java Code from WSDL...”,勾选“Client Side”,然后选择对应的输出目录,点击【OK】,等待代码生成完毕即可在指定的目录中看到对应的Java类。

示例二

下面是另一个示例,介绍如何使用Axis2插件来生成服务端和客户端的代码。

假设有一个提供添加用户信息的WebService,其WSDL文件的URL为http://localhost:8080/web-service/user?WSDL,我们可以通过以下步骤来生成相应的Java类:

  1. 打开IntelliJ IDEA,创建一个新项目,命名为“user-web-service”。
  2. 在“src/main”目录下创建Java Package,命名为“com.example.webservice”。
  3. 在“com.example.webservice”包下,实现添加用户信息的WebService,并添加相应的注解,如下:
@WebService
public class UserService {

  public User addUser(User user) {
    // ...添加用户信息的代码
  }
}
  1. 把该Java文件打包成jar包,命名为“user-ws.jar”。
  2. 在项目中添加Axis2插件,具体步骤请参考上面"2. 设置Axis2插件"中的步骤。
  3. 把“user-ws.jar”上传到项目中,命名路径为“services/user-ws.jar”。
  4. 在“services”目录下,使用以下命令行启动Axis2服务器:
java -cp /path/to/axis2-1.x/lib/*:services/user-ws.jar org.apache.axis2.transport.http.SimpleHTTPServer 8080
  1. 访问http://localhost:8080/axis2/,并点击左侧菜单栏中的“Services”,可以看到添加用户的WebService已经被发布出来。
  2. 右键WSDL文件,选择“Generate Java Code from WSDL...”,勾选“Server Side”,然后选择对应的输出目录,点击【OK】,等待代码生成完毕即可在指定的目录中看到对应的Java类。
  3. 右键WSDL文件,选择“Generate Java Code from WSDL...”,勾选“Client Side”,然后选择对应的输出目录,点击【OK】,等待代码生成完毕即可在指定的目录中看到对应的Java类。

到此为止,我们已经完成了使用IntelliJ IDEA自带的Axis工具和WSDL文件反向生成服务端和客户端代码的过程。通过以上两个示例,相信大家已经掌握了这一过程的具体操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IDEA利用自带Axis工具和wsdl文件反向生成服务端客户端代码图文详解 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 什么时候应该在java中使用intstream.range?

    当我们需要生成一系列连续的整数时,可以使用Java 8中的IntStream.range()方法。以下是关于什么时候应该在Java中使用IntStream.range()的完整攻略: 1.Stream.range()的概念 IntStream.range()是Java 8中的一个方法,用于生成一系列连续的整数。该方法接受两参数,分别是起始值和结束值(不包括结…

    other 2023年5月7日
    00
  • iOS 项目中的version和build 详解

    iOS 项目中的 version 和 build 详解 在 iOS 项目中,version 和 build 是两个重要的概念,用于标识和管理应用程序的不同版本。它们在应用程序的发布、更新和识别方面起着关键作用。下面将详细解释这两个概念以及它们的区别。 Version(版本号) Version 是一个用于标识应用程序版本的字符串。它通常采用 x.y.z 的格式…

    other 2023年8月3日
    00
  • Android中BroadcastReceiver(异步接收广播Intent)的使用

    下面就为你详细讲解“Android中BroadcastReceiver(异步接收广播Intent)的使用”的完整攻略。 1. Broadcast Receiver 是什么? Broadcast Receiver 是一种可以接收 Android 系统发出的广播 Intent,并在接收到广播后执行指定操作的一种组件。Broadcast Receiver 不具有用…

    other 2023年6月27日
    00
  • c++的io处理中的头文件以及类理解(2)头文件

    C++的IO处理中的头文件以及类理解(2) 头文件的完整攻略 1. 基本介绍 C++的IO处理中的头以及类是C++标准库中的一部分,它提供了丰富的功能和工具,可以帮助开发者进行输入输出操作。其中,头文件提供了stringstream类,可以将字符串和其他数据类型进行转换,方便进行输入输出操作。 2. 头文件和类的使用 以下是使用头文件和stringstrea…

    other 2023年5月10日
    00
  • 中文版Win10预览版9879官方ISO镜像下载地址(附安装教程)

    中文版Win10预览版9879官方ISO镜像下载地址(附安装教程) 1. 下载镜像文件 首先,你需要下载中文版Win10预览版9879的官方ISO镜像文件。你可以通过以下步骤进行下载: 步骤一:打开你的浏览器,访问微软官方网站。 步骤二:在搜索框中输入“中文版Win10预览版9879官方ISO镜像下载”,然后按下回车键进行搜索。 步骤三:在搜索结果中找到微软…

    other 2023年8月4日
    00
  • Vue中全局变量的定义和使用

    Vue中全局变量的定义和使用攻略 在Vue中,我们可以通过一些方法来定义和使用全局变量。全局变量可以在整个应用程序中共享和访问,方便在不同的组件中使用相同的数据。 1. 使用Vue插件 Vue插件是一种扩展Vue功能的方式,我们可以在插件中定义全局变量。下面是一个示例: // 定义插件 const MyPlugin = { install(Vue) { Vu…

    other 2023年7月28日
    00
  • 关于MySQL B+树索引与哈希索引详解

    MySQL B+树索引与哈希索引详解 什么是索引 索引是为了提高数据库查询效率而创建的一种数据结构。它是通过建立一种快速、可排序并且占据空间较小的数据结构,对数据库表中的某一列或多列进行排序的一种方式。通过索引可以快速查找表中的数据,从而提高查询效率。 B+树索引 B+树索引是MySQL中使用最广泛的一种索引结构。它是一种多路平衡查找树,能够支持在非常大的数…

    other 2023年6月27日
    00
  • MyBatis-Plus通过插件将数据库表生成Entiry,Mapper.xml,Mapper.class的方式

    以下是使用MyBatis-Plus通过插件将数据库表生成Entity、Mapper.xml和Mapper.class的方式的完整攻略: 首先,确保您的项目中已经引入了MyBatis-Plus的依赖项。您可以在项目的pom.xml文件中添加以下依赖项: <dependency> <groupId>com.baomidou</gro…

    other 2023年10月14日
    00
合作推广
合作推广
分享本页
返回顶部