AXIS2+Myeclipse 开发 Webservices

2023-11-08

一、准备工作
    1、安装JDK,我使用的是版本是JDK1.6,下载地址:
    http://java.sun.com/javase/downloads/index.jsp
     下载那个rpmbin包,即jdk-6u1-linux-i586-rpm.bin
     
上传安装文件到服务器上,并COPY/usr/local目录下,执行安装

      
#cd /usr/local
      
# chmod +x jdk-6u1-linux-i586-rpm.bin
      
#./jdk-6u1-linux-i586-rpm.bin
    修改环境变量:
   
# vi /etc/profile
   
在最后添加以下三行
  
export JAVA_HOME=/usr/java/jdk 1.6.0 _01
  
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
  
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    运行:
    #. /etc/profile
    #java -version
    查看版本是否正确,判断是否安装成功

    2、下载并安装myecplise:
http://downloads.myeclipseide.com/downloads/products/eworkbench/6.5.1GA/MyEclipse_6.5.1GA_E3.3.2_Installer.exe
  
    3、下载myecplise的两个插件,分别是axis2-eclipse-codegen-wizard-1.2.1和axis2-eclipse-service-archiver-wizard-1.2
axis2-eclipse-service-archiver-wizard-1.2:
http://apache.justdn.org/ws/axis2/tools/1_2/axis2-eclipse-service-archiver-wizard-1.2.zip
axis2-eclipse-codegen-wizard-1.2.1:
http://apache.justdn.org/ws/axis2/tools/1_1_1/axis2-eclipse-codegen-wizard.zip

     将插件包解压,把解压下来的文件拷贝到myecplise安装目录下的eclipse目录下面的plugins目录下。重启myecplise。菜单栏,点击 File -> New -> Other,显示如下:

如上图所示说明插件安装成功。
   
    4、下载
apache-tomcat- 6.0.13 ,下载地址:
http://tomcat.apache.org

    安装tomact,解压apache-tomact-6.0.13.tar.gz到/usr/local下,解压命令:
    tar -zxvf apache-tomact-6.0.13.tar.gz
    把/usr/java/lib目录下的tools.jar拷贝到
/usr/local/apache-tomcat-6.0.13/lib目录下。
    /usr/local/apache-tomcat-6.0.13/bin目录下有两个shell文件startup.shshutdown.sh,分别是启动和关闭tomcat的批处理SHELL。
     如果想让tomact在开机的时候自动启动,则编辑文件
/etc/rc.d/rc.local
在文件最后添加这一句 /usr/local/apache-tomcat-6.0.13/bin/startup.sh
rel="File-List" href="file:///C:%5CDOCUME%7E1%5C1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">      重新启动机器或者不重启机器直接运行/usr/local/apache-tomcat-6.0.13/bin/startup.sh启动TOMCAT。访问http://192.168.1.235:8080,可以看到TOMCAT的缺省页面出来了。
  
     windows环境下的tomact安装与此类似,这里不作介绍。

     5、下载并安装axis2:
http://ftp.wayne.edu/apache/ws/axis2/1_1_1/axis2.war
下载后将后缀改为.jar,解压后,把axis2文件夹拷贝到/usr/local/apache-tomact-6.0.13/webapps目录下。
    重启tomact,访问http://192.168.1.235:8080/axis2/services/,可以看到axis2自带的version服务。

 

二、开发一个Add服务,实现一个加法运算的服务。
    1、新建一个工程,点击File -> New -> web project,输入project name,点击Finish。


    2、右键选择Add工程,新建一个Interface文件,输入包名和文件名。然后点击Finish。

     编写Add接口代码,如下所示:
     package com.Add;

     public interface Add
     {
        public int add(int i,int j);
     }
     
     右键选择Add.java,选择Export,如下所示,点击next

   
    
 后面选择next,最后finish,在你的workplace中可以找到你的Add.jar文件。

 3、选择File -> New -> Other ,如下图:
   选择Axis2 Code Generator
   
选择next

输入class name ,这里是Add.java的完整路径,即com.Add包下的Add接口
然后点击Add jar,选择在上面export出来的Add.jar文件,再点击Test Class Loading。
然后next


选择Finish,这便创建了一个Add.wsdl的文件,在workplace/Add/src/目录下。
右键选择Add工程,选择Refresh刷新,将可以看到Add.wsdl文件。
 
   4、根据wsdl文件生成代码。
双击Add.wsdl文件,显示如下




作如下修改:

   点击 Source,显示如下

修改红框内的内容:param0改为int1,param1改为int2,可以修改为自己认为有意义的单词。
修改后为:


   保存。

鼠标点击 File -> New -> Other,显示如下

选择next

注意,这里与前面有所不同,应该选择Generate Java source code from a WSDL file。
然后选择next


点击Browse,选择wsdl文件的位置,然后点击next,首先生成服务代码,设置如下所示:


选择next


以下几步生成client测试代码,鼠标点击 File -> New -> Other


next


next

next

next
选择Finish

这时左边将显示如下,出现红X,说明有错误。

作如下三个修改:
    1、右键点击Add工程,选择Build Path ,再选择Add External Archives。

显示如下:

选择axis2包下的 WEB-INF/lib/目录下的所以 .jar文件。

   2、将com.Add包下的Add.java拖动到src.com.Add包下,若出错选continue。然后删除com.Add包。
右键选择src.com.Add,选择Refactor,再选择Rename


修改后如下所示:

    3、点击test.com.add包,修改包里的AddTest.java文件。把第一行的package com.add;改为
package test.com.add;
     保存。
     此时右键选择Add工程,选择Refresh,红X将消失。




  5、编写业务代码。
双击com.add包下的文件AddSkeleton.java。
显示如下代码:
 package com.add;
    /**
     *  AddSkeleton java skeleton for the axisService
     */
    public class AddSkeleton{
    
        
        /**
         * Auto generated method signature
        
          * @param param0
        
         */
        public  com.add.xsd.AddResponse add
                  (
          com.add.xsd.Add param0
          )
        
           {
                //Todo fill this with the necessary business logic
                throw new  java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#add");
        }
    
    }

修改后如下所示:

   package com.add;
    /**
     *  AddSkeleton java skeleton for the axisService
     */
    public class AddSkeleton{
    
        
        /**
         * Auto generated method signature
        
          * @param param0
        
         */
        public  com.add.xsd.AddResponse add
                  (
          com.add.xsd.Add request
          )
        
           {
                //Todo fill this with the necessary business logic
 
                com.add.xsd.AddResponse response = new com.add.xsd.AddResponse();
                int result = request.getInt1() + request.getInt2();
                response.set_return(result);
                return response;
              
        }
    }

保存。
然后编写测试代码:
双击test.com.add包下的AddTest.java文件
其中testadd()方法的代码显示如下:

 public  void testadd() throws java.lang.Exception{

        com.add.AddStub stub =
                    new com.add.AddStub();//the default implementation should point to the right endpoint

           com.add.AddStub.Add param4=
                                                        (com.add.AddStub.Add)getTestObject(com.add.AddStub.Add.class);
                    // todo Fill in the param4 here
               
                        assertNotNull(stub.add(
                        param4));

        }
修改为:
public  void testadd() throws java.lang.Exception{

            java.lang.String url = "http://192.168.1.235:8080/axis2/services/Add";
        com.add.AddStub stub =
                    new com.add.AddStub(url);//the default implementation should point to the right endpoint
           com.add.AddStub.Add request=
                                                        (com.add.AddStub.Add)getTestObject(com.add.AddStub.Add.class);
                    // todo Fill in the param4 here
               
                
//在request中设置了两个数字,200和300,则返回结果应该是500
                           request.setInt1(200);  
                           request.setInt2(300);
                                                  System.out.println(stub.add(request).get_return());  //结果为500
                        assertNotNull(stub.add(
                        request));
              
        }

6、调试程序。
点击 File -> New -> Other

选择Axis2 Service Archiver,如上图所示,这一步是生成.aar的部署文件,选择next


点击Browse,选择class文件的位置,在Add工程目录下的WebRoot目录下的WEB-INF下的Class文件中。

next



选择WSDL,文件的位置,如上图所示。



直接点next,如上图所示


选择services.xml文件的位置,在Add工程目录下的src/resources/目录下,如上图所示。


选择输出文件的位置和文件名,这里我把输出文件放在 D:/ 目录下,取名为Add。如上图所示
选择Finish。则在D:/下可以找到一个名为Add.aar的文件。

将Add.aar文件拷贝到你的apache-tomact安装目录下的webapps/axis2/WEB-INF/services/目录下。
启动apache-tomact。
在浏览器中输入:  http://192.168.1.235:8080/axis2/services
如有Add服务,则表示部署成功。如下图所示:



现在运行测试程序:
选择测试程序,Run As ->  JUnit Test。



得到的正确结果应该是: 500

    至此,使用myecplise、apache-tomact和axis2开发webservices的方法已经介绍完毕,读者可以根据自己的项目需求,按照以上流程操作,只需要修改业务代码,即xxSkeleton.java文件即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AXIS2+Myeclipse 开发 Webservices 的相关文章

  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • 深度学习 FairMOT多目标跟踪(PANDA)

    FairMOT 复赛期间对于多目标跟踪任务使用的baseline 本质属于联合学习检测和嵌入模型 Joint Detection and Embedding JDE 毕设项目演示地址 链接 毕业项目设计代做项目方向涵盖 目标检测 语义分割
  • 关于航模的几点积累(四)关于螺旋桨

    关于固定翼飞行器的螺旋桨 1 螺旋桨的几种类型 按材质 塑料 木质 碳纤维 玻璃纤维 尼龙等 按桨叶数量 单叶桨 双叶桨 三叶桨等 按固定方式 快拆桨 大孔桨 适配子弹头 小孔桨 适配螺旋桨保护器 这几种螺旋桨之间的对比分析 2 螺旋桨的重
  • 计算机软件工程操作系统期末复习题

    1 计算机操作系统的功能是 D A 把源程序代码转换为目标代码 B 实现计算机用户之间的相互交流 C 完成计算机硬件与软件之间的转换 D 控制 管理计算机系统的资源和程序的执行 在现代计算机系统中 用户用高级语言编写的源程序必须通过编译程序
  • Elasticsearch Head的使用

    目录 概述 一 安装 Elasticsearch Head 二 解压文件 三 安装Elasticsearch Head依赖 四 启动 Elasticsearch Head 五 修改Elasticsearch Head启动端口号 六 使用 E
  • STM32的PWM控制4个舵机

    本人虽然接触STM32快半年了 但是最近才开始系统的学习STM32 建议一边学 一边做东西 能够更快的提升自己 我用的定时器是TIM3 所以我会把我出现的问题 分享给大家 希望大佬多多指教 因为我先进行部分映射 但是控制某个舵机的PB4引脚
  • 【SVN内网穿透】远程访问Linux SVN服务

    文章目录 前言 1 Ubuntu安装SVN服务 2 修改配置文件 2 1 修改svnserve conf文件 2 2 修改passwd文件 2 3 修改authz文件 3 启动svn服务 4 内网穿透 4 1 安装cpolar内网穿透 4
  • 【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!

    今天对接公众号 一直提示我签名有问题 但是我的签名和官方生成的签名一致 下面是对应数据比对 我的签名 微信官方提供签名 经过比对 两者是一致的 但是 就是一直提示错误 后面是解决思路 1 首先是需要在公众号管理平台配置对应服务器信息 包含白
  • 软件测试大作业 题目 网站测试,[软件分析与测试大作业] 测试性分析软件

    软件分析与测试 考试大作业 1 假设某单位内部电话号码由三部分组成 分别是 分机号 前缀 后缀 其中 分机号为空白或一位数字 前缀为非 0 开头的二位数字 后缀为非全0的3位数字 假定被测程序能接受一切符合上述规定的电话号码 拒绝所有不符合
  • 2023牛客暑期多校训练营7 I-We Love Strings (分块)

    文章目录 题目大意 题解 参考代码 题目大意 题解 这题给定的 n n n 大小和 s i s i si 的总长度有玄机
  • transformers学习笔记3

    创建model的方法 automodel创建预训练模型 使用automodel直接创建 使用的是hug face官网上的预训练好的模型参数 完成创建后再使用自己本地的数据集进行迁移训练 automodel api 去官网上下载用户指定类型模
  • com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

    com mysql cj jdbc exceptions CommunicationsException Communications link failure 这个问题就是本地sql没有开始 详情请看点击此处
  • 华为机试-称砝码

    文章目录 描述 输入描述 输出描述 代码解析 描述 现有n种砝码 重量互不相等 分别为 m1 m2 m3 mn 每种砝码对应的数量为 x1 x2 x3 xn 现在要用这些砝码去称物体的重量 放在同一侧 问能称出多少种不同的重量 注 称重重量
  • 地平线 AI 芯片工具链 - 03 自定义模型转换

    地平线 AI 芯片工具链 03 自定义模型转换 1 前提条件 2 文件目录 3 模型可视化 4 模型校验 5 模型编译 1 前提条件 地平线 AI 芯片工具链 01 配置安装 待转换模型 onnx 模型 其他类型可转为 onnx 模型 2
  • springboot项目如何开启热部署

    1 添加依赖
  • bert简单介绍和实践

    bert模型是Google在2018年10月发布的语言表示模型 在NLP领域横扫了11项任务的最优结果 可以说是现今最近NLP中最重要的突破 Bert模型的全称是Bidirectional Encoder Representations f
  • Scala下载及IDEA安装Scala插件(保姆级教程超详细)

    一 Scala的下载与安装 Scala语言可以在Windows Linux Mac OS等系统上编译运行 由于Scala是运行在JVM平台上的 所以安装Scala之前必须配置好JDK环境 JDK版本要求不低于1 5 本博客为基于Window
  • 使用Python批量修改文件名

    使用os rename fold newfilename 对文件重命名 coding utf 8 import os filename list os listdir for filename in filename list str re
  • 防火墙简介

    1 什么是防火墙 防火墙也被称为防护墙 它是一种位于内部网络与外部网络之间的网络安全系统 通常 防火墙可以保护内部 私有局域网免受外部攻击 并防止重要数据泄露 它实际上是一种隔离技术 在没有防火墙的情况下 路由器会在内部网络和外部网络之间盲
  • Free MyBatis plugin插件搜不到

    Free MyBatis plugin IntelliJ IDEs Plugin Marketplacehttps plugins jetbrains com plugin 8321 free mybatis plugin versions
  • AXIS2+Myeclipse 开发 Webservices

    一 准备工作 1 安装JDK 我使用的是版本是JDK1 6 下载地址 http java sun com javase downloads index jsp 下载那个rpm的bin包 即jdk 6u1 linux i586 rpm bin