Apache Axis2 /Java 学习手册   by 星云

0x01 什么是Apache Axis2/Java?

Apache Axis2™ 是一个Web Service / SOAP / WSDL引擎,是广泛使用的Apache Axis SOAP Stack的升级版。

我的理解: Apache Axis2 可以理解成是一个 Web Service 框架,使用它可以高效安全可靠地处理XML 报文消息。

Apache Axis2 Web Service 引擎有两种实现:

  1. Abache Axis2 / Java
  2. Apache Axis2 / C.

我的理解:Apache Axis2 框架有两种实现,一种用C语言写的,一种用Java写的。

0x02 为什么选择Apache Axis2?

优点:

  1. 比Axis 1.x 架构更灵活,高效可配置
  2. Apache Axis2 不仅支持SOAP 1.1和SOAP 1.2 还集成了对Rest 风格的Web Service 的支持
  3. 比Axis 1.x 更模块化,更面向XML

功能特点:

  1. XML解析速度更快
  2. 低内存占用空间
  3. 热部署,将新服务添加到系统而无需关闭服务器
  4. 异步Web服务,Axis2现在支持使用非阻塞客户端和传输的异步Web服务和异步Web服务调用
  5. WSDL 支持,Web服务描述语言版本1.1 和2.0
  6. ...

我的理解:Apache Axis2 比Apache Axis 更好更优秀

0x03 安装指南

系统要求:

基本上应该都满足,

  1. JDK 1.5+
  2. Ant 1.6.5+
  3. Maven 2.0.7 +

Apache Axis2 可以作为独立服务器安装,也可以作为J2EE兼容servlet容器的一部分安装

我的理解:

Apache Axis2 可以将axis2.war 包放到自己安装包目录的webapps 目录下运行

也可以将axis2.war 包放到 Tomcat 等 Servlet 容器中的webapps 目录下运行

下载官网地址:http://axis.apache.org/axis2/java/core/download.html

1. 使用标准二进制分发将Axis2安装为独立服务器

假设我们已经安装好JDK 1.5 以上版本的JDK

1.1 打开上面的下载地址,然后点击图中所示的二进制下载超链接

1.2 解压

我们下载Apache Axis2 的二进制文件,下载解压后如图所示:

1.2 配置环境变量

我的电脑——属性——环境变量

新建环境变量配置如下:

AXIS2_HOME
C:\app\axis2\axis2-1.7.9

Path路径追加:

%AXIS2_HOME%\bin\

1.3 启动 Apache Axis2 Standalone Server

Windows 操作系统下输入命令

axis2server.bat

Unix操作系统下输入命令:

axis2server.sh 

启动成功后,

打开浏览器

http://127.0.0.1:8080/axis2/services/

可以看到:

我的理解:通过访问这个url地址我们可以看到当前axis2附带的默认Web Service

当我们点击上图中的Version 超链接,它会跳转到这个链接

http://127.0.0.1:8080/axis2/services/Version?wsdl

可以看到这个Web Service 的描述信息详情如下图所示:

我的理解: 这是一个Web Service 描述文件,Axis2支持Web服务描述语言版本1.12.0

2. 构建Axis2 Web应用程序(axis2.war)

我们打开安装目录,可以看到这样的目录结构

接下来我们需要使用ant 构建工具,将这些文件打包成axis2-web.war

首先呢,我们需要下载Ant   https://ant.apache.org/bindownload.cgi

下载解压后如下所示:

配置环境变量:

ANT_HOME
C:\app\ant\apache-ant-1.10.5

添加到Path 路径下:

%ANT_HOME%\bin\

打开Power Shell 或者CMD 命令行输入以下命令

ant -version

配置成功后可以看到回显效果如下所示:

输入构建命令

ant create.war

我们可以在安装目录的dist 目录下找到生成的axis2.war

其次所有的模块和Service 会打包到repository文件夹下

Axis2 脚本命令说明

接下来我们讲解下这个目录下的一些脚本的用法和功能

C:\Apps\axis2\axis2-1.7.9\bin

截图如下所示:

脚本名称 描述
axis2.{bat|sh} 此脚本可以运行使用Axis2编写的Web Service客户端。在为Axis2依赖库(AXIS2_HOME/lib中存在 * .jar文件)添加类路径,设置Axis2存储库位置(AXIS2_HOME / repository)和设置Axis2配置文件位置(AXIS2_HOME/conf)后,此脚本调用“java”命令/axis2.xml)为你。有了这个,您可以放心设置所有上述Axis2特定参数。

用法:axis2.{sh.bat} [-options] class [args...]

axis2server.{sh|bat} 此脚本将使用AXIS2_HOME/repository作为Axis2存储库并将AXIS2_HOME/conf/axis2.xml作为Axis2配置文件启动独立的Axis2服务器。这将启动AXIS2_HOME/conf/ axis2.xml中列出的所有传输侦听器。

例如,如果要使用独立的Axis2服务器部署服务,请将服务存档复制到AXIS2_HOME/repository/services目录。接下来,转到AXIS2_HOME/conf/axis2.xml的“Transport Ins”部分并配置传输接收器(默认情况下列出端口8080中的simpleHttpServer)。然后调用此脚本。

通过 在命令行中添加-xdebug选项,可以在调试模式下启动服务器。然后可以通过连接到端口8000来连接远程调试器。

wsdl2java.{bat|sh} 此脚本根据给定的WSDL文件生成Java代码,以处理Web服务调用(client-side stubs)。此脚本还能够根据给定的WSDL生成Web服务框架。

用法:wsdl2java.{sh|bat} [OPTION]... -uri <Location of WSDL>

例如,wsdl2java.sh -uri ../wsdl/Axis2Sample.wsdl

有关此脚本的更详细参考可在此处找到

java2wsdl.{bat|sh} 此脚本为给定的Java类生成适当的WSDL文件。

用法:Java2WSDL.{sh|bat} [OPTION]... -cn <fully qualified class name>

例如,Java2WSDL.sh -cn ../samples/test/searchTool.Search

有关此脚本的更详细参考可在此处找到

在Servlet容器中安装Axis2

无论哪个发行版,在符合J2EE的servlet容器中安装Axis2如下:

我的理解:

1. Axis2 构件War 文件有两种方式,一种是使用命令ant create.war 构建war 包,就像刚才我们生成axis2.war 一样。另外一种是解压axis2.war 修改源代码,然后构建war 包。

2. 将*.war 文件放到 web 容器的webapps 文件夹中,比如复制刚才生成的axis2.war 放到tomcat 的webapps 中,大多数web 容器可以自动安装,有些需要重启web 容器。

3.一旦war安装成功后,我们就可以通过浏览 http://<host :port>/axis2 访问页面如下所示

比如我用的tomcat,端口是8014端口,浏览器打开地址:

http://localhost:8014/axis2/ 

点击Services 超链接,查看此服务器中部署的所有可用服务的列表。

http://localhost:8014/axis2/services/listServices

点击Validate 超链接,检查系统以查看是否所有必需的库都已就位并查看系统信息。

http://localhost:8014/axis2/axis2-web/HappyAxis.jsp

点击 Administration 超链接,用于管理此Axis2安装的控制台。

我的理解:这里Axis2 就像我们熟悉的Tomcat 一样也有一个web控制台,

这个账号密码是%AXIS2_HOME%\conf\ axis2.xml 中配置的

默认账号:admin, 默认密码axis2 这个密码最好修改,否则极为不安全

除此之外,这个配置文件还可以修改axis2 独立服务器的端口号,默认是8080端口

   <transportReceiver name="http"
class="org.apache.axis2.transport.http.SimpleHTTPServer">
<parameter name="port">8080</parameter> 

登陆成功后我们可以看到如下界面

上传 Service

上传的.aar文件将存储在默认服务目录中。对于Axis2,这将是<webapps> / axis2 / WEB-INF / services目录。上传服务后,将立即安装。

由于Axis2支持热部署,因此您可以通过文件系统将服务存档直接删除到上述服务目录。它还将导致服务自动安装,而不会重新启动容器。

使用Maven 构建WAR

1. 配置并安装Maven项目

2. 新建一个maven web app 项目

由于这个模板是早期的Maven 模板,所以完成后,Build Path-----> 修改JRE 1.5 为JDK 1.8,这样目录结构就会自动生成

3. 下载axis2.war 模板引擎文件

http://axis.apache.org/axis2/java/core/download.html

复制axis2.war 解压的源码文件到项目的webapp 目录下

使用maven install 命令构建*.war 包,执行成功后将会在target 文件夹下找到*.war

然后我们将这个axis2-helloworld-sample.war 包复制到 tomcat 的webapps 目录下,启动我们的tomcat

startup

前提:Tomcat 配置好环境变量,输入startup 才会启动startup.bat 或者startup.sh 脚本,启动我们的tomcat

访问URL地址:

http://localhost:8014/axis2-helloworld-sample/

访问成功后如图所示:

1. Apache Axis2 下载安装入门的更多相关文章

  1. Apache的下载安装(主要说的 64位)及问题

    本文转载自:http://blog.csdn.net/qq_15096707/article/details/47319545 今天重装完win10系统,就重新下载安装 Apache.虽说之前有安装过 ...

  2. WebService学习之旅(四)Apache Axis2的安装

    一.Axis2简介 Axis2是目前使用较多的WebService引擎,它是Axis1.x的升级版本,不仅支持SOAP1.1和SOAP1.2,而且也提供了对REST风格WebService的支持. A ...

  3. Windows下Apache的下载安装启动停止

    一:下载 打开任意浏览器,输入网址:http://httpd.apache.org/ 进入如下界面: 我们选择最新版Apache httpd 2.4.12Released,点击Download,进入如 ...

  4. 下载安装 Apache(Windows 64位)

    32位的Apache的下载安装:http://jingyan.baidu.com/album/2f9b480dae458f41cb6cc2ce.html?picindex=2 64位的Apache的下 ...

  5. Apache axis2 + Eclipse 开发 WebService

    yd小结注意:1.axis2的2个插件的版本必须与引入的jar包匹配,如果不同则可能报以下错误 “没有实现序列化方法”或 “org.apache.axis2.databinding.utils.wri ...

  6. Apache php Mysql部署(一)下载安装

    前言 最近公司需要开发一个网站,但是又有特殊要求:不能使用java.只能在Windows平台部署.没方法,只能选择了Apache+php+Mysql的方案. 不知道有没有更好的,听所golang挺不错 ...

  7. Apache Tomcat下载、安装、配置图文教程

    本文已迁移到我的个人网站 http://www.wshunli.com 文章地址: http://www.wshunli.com/2016/03/19/Tomcat安装配置/ (整理截图.安装过程更加 ...

  8. windows系统SVN和apache的下载和安装

    原文:windows系统SVN和apache的下载和安装 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://ejb3.blogbus.com/logs/107443052. ...

  9. Python 3.6.3 官网 下载 安装 测试 入门教程 (windows)

    1. 官网下载 Python 3.6.3 访问 Python 官网 https://www.python.org/ 点击 Downloads => Python 3.6.3 下载 Python ...

随机推荐

  1. 【Linux】文件批量重命名

    例如:我们现在有如下文件列表 我们现在想要把.log..LOG与.rar为扩展名的文件全部重新命名,具体脚本如下: #!/bin/sh ##------------------------------ ...

  2. yum安装提示错误Thread/process failed: Thread died in Berkeley DB library

    问题描述: yum 安装更新提示 rpmdb: Thread/process failed: Thread died in Berkeley DB library 问题解决: 01.删除yum临时库文 ...

  3. Ubuntu x86-64汇编(5) 控制指令

    控制指令 Control Instructions 汇编的控制指令主要包含标签, 无条件跳转和有条件跳转几种 标签 Label 标签用于标记跳转的目的, 必须以字母开头, 后面跟着字母, 数字和下划线 ...

  4. &lt;十一&gt;读&lt;&lt;大话设计模式&gt;&gt;之抽象工厂模式

    学习设计模式有一段时间了,对设计模式有一个体会,就是没那么难.就是设计程序遵循一些原则,让代码可复用,在改动的时候不用涉及太多的类,扩展方便.抽象工厂模式名字听起来抽象.但理解起来一点也不抽象,用语言 ...

  5. Swift打印Debug日志,实现Release下不打印

    OC内,我们往往做log打印时,会考虑一个Debug环境下打印,Release下控制不打印,以节约性能消耗. OC我们可以这样做: 在pch文件内,定义如下: //打印日志 #ifdef DEBUG ...

  6. IDEA导入项目jar包红线, cannot resolve symbol xxxx问题

    简单来说遇到的这种情况2种方式解决了, 不知道还有没有其他原因的. 1.reimport包 2.清缓存重启 针对1方法: a.确实不缺包: 可以先注释掉pom文件中的jar包, 此时idea会提示im ...

  7. Python中的两种路径

    Java中有两种路径,一种是操作系统的路径path,另一种是类路径classpath. Python中也是如此,一种是操作系统环境变量中的path,另一种是PYTHONPATH. 当import xx ...

  8. Android轻量级ORM框架ActiveAndroid入门教程(转)

    注:没有找到出处,如有侵犯,请告知 开始ActiveAndroid神奇之旅: 在AndroidManifest.xml中我们需要添加这两个 AA_DB_NAME (数据库名称,这个name不能改,但是 ...

  9. Redis学习之路(005)- redis内存数据库C客户端hiredis API 中文说明

    A)编译安装 make make install (/usr/local) make install PREFIX=$HOME/progs(可以自由指定安装路径) B)同步的API接口 redisCo ...

  10. 【SqlServer】聚集索引与主键、非聚集索引

    目录结构: contents structure [-] 聚集索引和非聚集索引的区别 聚集索引和主键的区别 主键和(非)聚集索引的常规操作 聚集索引.非聚集索引在SqlServer.MySQL.Ora ...