1.下载以及官方文档
http://ws.apache.org/axis2
2.现有项目配置axis2
1)web.xml
<servlet>
<display-name>Apache-Axis Servlet</display-name>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
2)相关文件拷贝
从官方下载war包,解压后,把/WEB-INF/lib,/WEB-INF/conf,/WEB-INF/modules复制到现有项目下
在现有项目下创建/WEB-INF/services/mydomain/META-INF/services.xml配置文件,内容例如:
<serviceGroup>
<service name="HelloWorldService">
<description>Hello World Service</description>
<parameter name="ServiceClass" locked="false">
example.HelloWorldService
</parameter>
<operation name="hello">
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
</operation>
</service>
</serviceGroup>
3)service例子:
package example;
import java.util.ArrayList;
import java.util.List;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
/**
* @author an_chuantong
* @version created:Aug 30, 2008 6:15:14 PM
*
*/
public class HelloWorldService {
public HelloWorldService() {
}
public OMElement hello(OMElement in) {
String name = in.getText();
System.out.println("name:" + name);
System.out.println("in:" + in.getLocalName());
OMNamespace omN=in.getNamespace();
System.out.println("getNamespaceURI:" +omN.getNamespaceURI());
OMFactory fac = OMAbstractFactory.getOMFactory();
// OMNamespace指定此SOAP文档名称空间。
OMNamespace omNs = fac.createOMNamespace("http://helloworld.com/", "hw");
// 创建元素sayHello,并指定其在omNs指代的名称空间中。
OMElement resp = fac.createOMElement("helloResponse", omNs);
// 指定元素的文本内容。
resp.setText("安安"+name);
List list = new ArrayList();
list.add("act");
list.add("anc");
list.add("安安");
return resp;
}
通过http://localhost:8080/mydomain/services/HelloWorldService?wsdl 访问,如果能显示wsdl信息则已配置成功
4)client测试
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class TestClient {
// targetEPR指定打包的Service(.aar文件)在容器中的物理位置。
private static EndpointReference targetEPR = new EndpointReference("http://localhost:8080/mydomain/services/HelloWorldService?wsdl");
public static OMElement getSayHelloOMElement() {
// 创建request SOAP包。
OMFactory fac = OMAbstractFactory.getOMFactory();
// OMNamespace指定此SOAP文档名称空间。
OMNamespace omNs = fac.createOMNamespace("http://helloworld.com/", "hw");
// 创建元素sayHello,并指定其在omNs指代的名称空间中。
OMElement method = fac.createOMElement("hello", omNs);
// 指定元素的文本内容。
method.setText("ZJ");
return method;
}
public static void main(String[] args) {
try {
Options options = new Options();
options.setTo(targetEPR);
ServiceClient sender = new ServiceClient();
sender.setOptions(options);
OMElement sayHello = TestClient.getSayHelloOMElement();
// 发出request SOAP,
// 同时将得到的远端由sayHello方法返回的信息保存到result。
// 通过services.xml能准确找到sayHello方法所在的文件。
OMElement result = sender.sendReceive(sayHello);
System.out.println(result);
if (result != null) {
Iterator iterator = result.getChildElements();
while (iterator.hasNext()) {
OMElement o = (OMElement) iterator.next();
System.out.println(o.getText());
}
}
} catch (Exception axisFault) {
axisFault.printStackTrace();
}
}
}
4.jsp客户端:
jsp与独立程序的区别在于ServiceClient 的构造方式
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);//以http方式请求
ConfigurationContext configctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(null, null);
ServiceClient sender = new ServiceClient(configctx, null);
分享到:
相关推荐
总结:了解和掌握WebService Axis,对于Java开发者来说至关重要,因为它能帮助你在项目中快速实现服务化,提高代码复用性和系统扩展性。通过学习和实践,你将能够自如地创建、部署和调用SOAP Web服务,进一步提升你...
### Axis2与现有Web项目的集成方法 在当前的软件开发领域中,Web服务技术占据了重要的地位,特别是SOAP-based Web服务的实现方式。Apache Axis2作为一款成熟且功能强大的开源工具包,提供了创建、部署和调用Web服务...
总的来说,Axis2 Eclipse WebService插件为开发者提供了一站式的Web服务开发解决方案,它简化了开发流程,增强了开发效率,并且由于其灵活性和可扩展性,使其成为企业级Web服务开发的首选框架之一。通过熟练掌握这个...
Axis包含客户端和服务器端组件,可以轻松地将现有Java类转化为Web服务,或者调用远程Web服务。 3. 使用Axis开发Web服务的步骤 **第一步:创建Web服务** - 创建Java类:首先,我们需要一个包含公共方法的Java类...
在插件安装完成后,用户可以通过MyEclipse的菜单栏或者工具栏找到新的Axis2相关的选项,例如创建新的Axis2服务、导入现有的服务、部署服务到服务器等。这些功能大大提高了开发效率,使得Web服务的开发流程更加顺畅。...
Java Axis WebService 开发实例详解 在Java世界中,开发Web服务时,Axis是一个非常流行的开源工具,它允许开发者创建、部署和使用Web服务。本实例将深入探讨如何使用Axis来构建一个简单的Web服务,并进行调用。这个...
1. **axis2-eclipse-codegen-wizard-1.4.zip**:这个文件提供了代码生成向导,对于开发人员来说,能够快速从一个现有的WSDL(Web服务描述语言)文件生成服务客户端或服务端代码。通过这个向导,你可以省去手动编写...
- **备份当前状态**:在开始升级前,务必备份现有的Axis2配置和部署的服务。 - **获取升级包**:这里提供的压缩包包含所有必要的代码和jar包,还有升级说明和测试类。 - **对比差异**:检查新版本的API是否有重大...
总结来说,从“被迫把WebService改成了Axis2”这一描述中,我们可以看出一个技术迁移的实例,其中涉及到技术选型、代码重构、服务配置等多个环节。这一过程不仅体现了技术的演进,也突显了开发者在面对技术变革时的...
标题中的“axis2简单webservice工程源码”指的是一个基于Apache Axis2框架构建的Web服务示例项目。Apache Axis2是Java平台上一个流行的Web服务框架,用于开发、部署和执行Web服务。它提供了高效的性能、模块化架构...
- 模块化设计:AXIS2的组件可以通过插件系统轻松扩展,允许添加新的功能或替换现有模块。 - 支持多种传输协议和数据格式:除了SOAP,AXIS2还支持REST、JSON等其他数据交换格式,以及HTTP、JMS等多种传输协议。 8....
2. **开发指南**:《Axis1.4开发指南》是理解Axis1.4的入门资料,通常会涵盖安装配置、创建服务、发布服务、调用服务等步骤,还会讲解如何处理各种错误和异常,以及如何调试Web服务。 3. **jar包**:在开发过程中,...
### Axis2 WebService 开发指南知识点详述 #### 一、概述 Axis2是一个功能强大的开源Web服务框架,用于构建和服务于SOAP-based Web Services。它提供了高性能和灵活的服务实现方式,支持多种协议如HTTP、HTTPS等,...
集成Axis2到现有项目的第一步通常是添加Axis2依赖。这通常涉及到修改项目的构建文件(如Maven的pom.xml或Gradle的build.gradle),将Axis2的相关库添加到依赖管理部分。确保添加的版本与项目其他依赖兼容,以避免...
这通常涉及到创建一个新的项目或在现有项目中添加Web服务相关的功能。在Java环境中,可以使用Apache CXF、Axis2或者Spring-WS等框架来实现。这些框架提供了一种简洁的方式来定义和暴露Web服务接口。 1. **设置开发...
在"AXIS WebService 例子 + 分布讲解 + 完整项目"中,我们将深入探讨以下几个关键知识点: 1. **Web服务基础**:Web服务是一种通过互联网交换业务逻辑的标准化方法。它们基于开放标准,如XML、WSDL(Web Services ...
Axis2不仅能够提供高性能的服务,还具有高度可扩展性,可以方便地集成到现有的应用程序和服务中。 ##### 2. Axis2的安装与配置 为了在Tomcat服务器上部署Axis2,你需要进行以下步骤: - **下载Axis2**:访问官方...
本篇文章将详细介绍如何使用Axis框架在现有Web服务器上开发一个WebService服务。 1. ** Axis简介:** Axis是Apache软件基金会的一个开源项目,它提供了基于Java的SOAP(Simple Object Access Protocol)处理和Web...
描述中提到的“Axis2创建WebService实例所需要的bin压缩包和war压缩包”,暗示了这两个文件是Axis2的核心组件,它们分别包含不同的内容以支持Web服务的开发和部署。 1. **axis2-1.6.2-bin.zip**:这个文件是Axis2的...