`

简洁axis1的应用

阅读更多
Axis用过一段时间后就听说Axis2横空出世,继而接触了CXF,如果不赶紧整理,怕是都要遗忘了,今天咱就先整理一下Axis1。
Axis1终于1.4版本,此后转为Axis2。

先搭建一个简单的Axis1,日后根据需要逐步求精。


在开始构建前,我们需要获得以下jar包:
引用

activation.jar
axis.jar
commons-discovery.jar
commons-logging.jar
log4j.jar
jaxrpc.jar
mail.jar
wsdl4j.jar


首先,需要在WEB-INF下构建server-config.wsdd文件,内容如下:
Xml代码

1. <?xml version="1.0" encoding="UTF-8"?>
2. <deployment
3. xmlns="http://xml.apache.org/axis/wsdd/"
4. xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
5. <transport
6. name="http">
7. <requestFlow>
8. <handler
9. type="java:org.apache.axis.handlers.http.URLMapper" />
10. </requestFlow>
11. </transport>
12. <transport
13. name="local">
14. <responseFlow>
15. <handler
16. type="java:org.apache.axis.transport.local.LocalResponder" />
17. </responseFlow>
18. </transport>
19. <service
20. name="Version"
21. provider="java:RPC">
22. <parameter
23. name="allowedMethods"
24. value="getVersion" />
25. <parameter
26. name="className"
27. value="org.apache.axis.Version" />
28. </service>
29. </deployment>

<?xml version="1.0" encoding="UTF-8"?>
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport
name="http">
<requestFlow>
<handler
type="java:org.apache.axis.handlers.http.URLMapper" />
</requestFlow>
</transport>
<transport
name="local">
<responseFlow>
<handler
type="java:org.apache.axis.transport.local.LocalResponder" />
</responseFlow>
</transport>
<service
name="Version"
provider="java:RPC">
<parameter
name="allowedMethods"
value="getVersion" />
<parameter
name="className"
value="org.apache.axis.Version" />
</service>
</deployment>


我们将测试Axis1内部的Version服务。
接下来,我们构建web.xml文件,如下所示:
Xml代码

1. <?xml version="1.0" encoding="UTF-8"?>
2. <web-app
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4. xmlns="http://java.sun.com/xml/ns/javaee"
5. xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
7. id="WebApp_ID"
8. version="2.5">
9. <display-name>Apache-Axis</display-name>
10. <servlet>
11. <display-name>Apache-Axis Servlet</display-name>
12. <servlet-name>axis</servlet-name>
13. <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
14. <load-on-startup>0</load-on-startup>
15. </servlet>
16. <servlet-mapping>
17. <servlet-name>axis</servlet-name>
18. <url-pattern>/services/*</url-pattern>
19. </servlet-mapping>
20. </web-app>

<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID"
version="2.5">
<display-name>Apache-Axis</display-name>
<servlet>
<display-name>Apache-Axis Servlet</display-name>
<servlet-name>axis</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>


所有以/services/开头的请求都将转交给AxisServlet处理。
构建一个测试用例,如下所示:
Java 代码

1. import static org.junit.Assert.*;
2.
3. import java.net.URL;
4.
5. import javax.xml.namespace.QName;
6.
7. import org.apache.axis.client.Call;
8. import org.apache.axis.client.Service;
9. import org.junit.Before;
10. import org.junit.Test;
11.
12. /**
13. * WebService 测试
14. *
15. * @author 梁栋
16. * @version 1.0
17. * @since 1.0
18. */
19. public class WebServiceTest {
20. private String namespaceUri = "http://localhost:8080/axis/services/Version";
21. private String wsdlUrl = namespaceUri + "?wsdl";
22.
23.
24. /**
25. * 测试
26. *
27. * @throws Exception
28. */
29. @Test
30. public final void test() throws Exception {
31.
32. // 创建调用对象
33. Service service = new Service();
34. Call call = (Call) service.createCall();
35.
36. // 调用 远程方法
37. call.setOperationName(new QName(namespaceUri, "getVersion"));
38.
39. // 设置URL
40. call.setTargetEndpointAddress(new URL(wsdlUrl));
41.
42. // 执行远程调用,同时获得返回值
43. String version = (String) call.invoke(new Object[] {});
44.
45. // 打印信息
46. System.err.println(version);
47.
48. // 验证
49. assertNotNull(version);
50. }
51.
52. }

import static org.junit.Assert.*;

import java.net.URL;

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.junit.Before;
import org.junit.Test;

/**
* WebService测试
*
* @author 梁栋
* @version 1.0
* @since 1.0
*/
public class WebServiceTest {
private String namespaceUri = "http://localhost:8080/axis/services/Version";
private String wsdlUrl = namespaceUri + "?wsdl";


/**
* 测试
*
* @throws Exception
*/
@Test
public final void test() throws Exception {

// 创建调用对象
Service service = new Service();
Call call = (Call) service.createCall();

// 调用 远程方法
call.setOperationName(new QName(namespaceUri, "getVersion"));

// 设置URL
call.setTargetEndpointAddress(new URL(wsdlUrl));

// 执行远程调用,同时获得返回值
String version = (String) call.invoke(new Object[] {});

// 打印信息
System.err.println(version);

// 验证
assertNotNull(version);
}

}



启动服务,访问地址http://localhost:8080/axis/services,得到如下页面:

单击getVersion服务,进入WSDL页面,如图所示:

我们已经能够正常访问该服务了,执行测试用例,如果我们正常获得版本信息则认为验证通过!
Axis就这么简单!
控制台得到如下信息,如图所示:



其实,在Eclipse中我们可以直接使用IDE提供的工具进行WebService验证,按下图步骤执行操作:

得到一个页面,如图所示:

继续按步骤点击,看看得到什么内容:

在Eclipse中,即便我们没有测试用例,也可使用IDE自带的工具进行验证!
 
分享到:
评论

相关推荐

    axis-1_4.jar

    描述中的信息非常简洁,仅提及了文件名,但我们可以从 "axis-1_4.jar" 推测出这是 Axis 框架的一个关键组成部分。Axis1 是早期的版本,发布于 2003 年,它支持基于 Java 的 Web 服务开发,允许开发者创建、部署和...

    springboot集成axis2-1.7.9实例

    总的来说,Spring Boot集成Axis2提供了一种简洁的方式,让开发者能够快速构建和部署基于Web服务的应用。这个实例展示了如何在Spring Boot应用中集成和调用Axis2服务,通过理解这些关键步骤,你可以根据需求扩展和...

    axis1.7.7最少jar

    总之,这个"axis1.7.7最少jar"压缩包提供了一个简洁的环境,适合需要快速启动和运行Axis1 Web服务的开发者。通过深入理解上述知识点,开发者可以有效地利用这些库文件进行Web服务的开发和调试。

    axis-bin-1_4.zip

    描述虽然简洁,但我们可以推断,"axis-bin-1_4.zip" 文件是一个用于安装和使用Axis 1.4的二进制发行版。通常,这样的文件会包含可执行文件、库、配置文件和其他必要的资源,使开发者能够在他们的系统上快速启动并...

    axis1.4生成客户端

    在IT行业中,Web服务是一种基于互联网的标准协议,用于应用程序之间的通信。Axis1.4是Apache软件基金会提供的一个开源工具,专门用于处理Web服务,特别是基于SOAP(Simple Object Access Protocol)的Web服务。本文...

    SpringBoot开发WebService之Axis示例

    在本文中,我们将深入探讨如何使用SpringBoot框架开发基于Axis的Web...通过理解这两个工具的核心功能以及如何将它们集成在一起,我们可以更好地利用它们的特性来满足项目需求,同时享受到SpringBoot带来的简洁和便捷。

    axis2完整jar

    这个描述简洁明了,暗示了我们讨论的核心内容是围绕Apache Axis2及其相关的依赖库。 标签“axis2 jar”进一步确认了我们的焦点,即Axis2的JAR文件,这是开发和运行基于Axis2的Web服务所必需的。 以下是一些与这些...

    axis_讲解 java

    根据提供的标题、描述...本文详细介绍了 Axis 在 Java 中的应用,包括其基本概念、安装配置步骤、如何使用 Axis 创建和调用 Web 服务等方面的内容。通过这些知识点的学习,可以帮助开发者更好地理解和使用 Axis 框架。

    axis2相关文件

    Axis2是Apache软件基金会开发的一款开源Web服务框架,专门用于构建和部署Web服务。它基于SOAP(简单对象访问协议...通过理解并熟练掌握Axis2的这些核心概念和工作流程,开发者可以更高效地构建和维护Web服务应用程序。

    java axis webservice 开发实例

    1. **设置环境**:首先,确保你已经安装了Java SDK和Apache Axis。将Axis的bin目录添加到系统PATH环境变量中。 2. **创建Java类**:编写一个简单的Java类,包含你想公开为Web服务的方法。例如,我们可以创建一个名...

    SpringBoo+Axis

    1. **设置依赖**:在你的`pom.xml`文件中,你需要添加Spring Boot和Axis的依赖。Spring Boot的起步依赖应该包括`spring-boot-starter-web`,因为它包含了处理HTTP请求的必要组件。同时,你需要添加Axis的依赖,如`...

    Axis2搭建WebService服务端demo

    1. **Spring**:这是一个开源的应用框架,它简化了Java应用的开发,提供了依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriented Programming)。Spring还提供了与各种数据库、消息队列和Web服务器的...

    Axis2中文手册

    Apache Axis2 是一个高度灵活、高效且可配置的Web服务框架,它是Axis1.*的升级版,拥有全新的架构,旨在提供更快的速度、更低的内存占用以及更强的可扩展性。本中文手册将详细介绍如何使用Axis2来创建Web服务和...

    Axis2与CXF的对比

    - Axis2的设计类似于小型应用服务器,可以通过WAR文件部署到Servlet容器,便于管理和监控。 - 可以独立运行,直接发布Web服务,灵活性较高。 2. **适用场合** - **CXF**: - 如果项目基于Spring框架,或者需要...

    axis2 _1.7.6全套jar包

    1. "axis2-1.7.6-war":WAR (Web Application Archive) 文件是Java Web应用的标准打包格式,通常包含了Servlets、JSPs以及其他Web应用所需的资源。在这个上下文中,它可能包含了Axis2作为Web服务引擎的部署版本,...

    Developing webService with axis2

    1. **如何使用Axis 2.1.3**:介绍最新版本的功能和改进。 2. **如何在Eclipse Europa (WTP 2.0)中使用Axis2**:讲解集成环境下的配置和开发流程。 3. **如何使用WS-Addressing调用异步操作**:解释异步通信的机制...

    axis2 1.6.2 生产wsdl客户端代码

    1. **下载与安装**: 首先,你需要下载Axis2 1.6.2的发行版,这里提供的是"axis2-1.6.2"的压缩包。解压后,你会得到一个包含bin目录和其他资源的结构。bin目录中的`axis2-1.6.2/bin/axis2-client.bat`(Windows)或`...

Global site tag (gtag.js) - Google Analytics