1.server端代码
package com.service;
import javax.xml.stream.XMLStreamException;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
public class SampleService {
public OMElement sayHello(OMElement element) throws XMLStreamException {
element.build();
element.detach();
/* 这是客户端发过来的包文,根节点一定是sayHello:
* <example1:sayHello xmlns:example1="http://example1.org/example1">
* <example1:personToGreet>John</example1:personToGreet>
* </example1:sayHello>
*/
String rootName = element.getLocalName();
System.out.println("Reading rootElement:" + rootName);
OMElement childElement = element.getFirstElement();
String personToGreet = childElement.getText();
/* 注意:这里除了跟节点名sayHelloResponse,其他可以随意组装xml:
* <example1:sayHelloResponse xmlns:example1="http://example1.org/example1">
* <example1:greeting>Hello, John</example1:greeting>
* </example1:sayHelloResponse>
*/
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace("http://example1.org/example1", "example1");
OMElement method = fac.createOMElement("sayHelloResponse", omNs);
OMElement value = fac.createOMElement("greeting", omNs);
fac.createOMText(value, "Hello, " + personToGreet);
method.addChild(value);
return method;
}
@SuppressWarnings("unused")
private void ping() {
}
}
2.services.xml
<service name="SampleService">
<description>
This is a sample service created in the Axis2 User's Guide
</description>
<parameter name="ServiceClass">
com.service.SampleService
</parameter>
<operation name="sayHello">
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
</operation>
<operation name="ping">
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" />
</operation>
</service>
3. 客户端代码
package com.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.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class TestOME {
private static EndpointReference targetEPR = new EndpointReference(
"http://localhost:8888/tservice/services/SampleService");
public static OMElement getBody(String personToGreet) {
/* 注意:这里根节点必须是sayHello,其他可以任意组装xml报文:
* <example1:sayHello xmlns:example1="http://example1.org/example1">
* <example1:personToGreet>John</example1:personToGreet>
* </example1:sayHello>
*/
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace("http://example1.org/example1", "example1");
OMElement method = fac.createOMElement("sayHello", omNs);
OMElement value = fac.createOMElement("personToGreet", omNs);
value.addChild(fac.createOMText(value, personToGreet));
method.addChild(value);
return method;
}
public static void main(String[] args) {
try {
Options options = new Options();
options.setTo(targetEPR);
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
ServiceClient sender = new ServiceClient();
sender.setOptions(options);
System.out.println("req:" + getBody("John"));
OMElement result = sender.sendReceive(getBody("John"));
System.out.println("res:" + result);
/* 这是服务端还回的报文,根节点一定是sayHelloResponse:
* <example1:sayHelloResponse xmlns:example1="http://example1.org/example1">
* <example1:greeting>Hello, John</example1:greeting>
* </example1:sayHelloResponse>
*/
String response = result.getFirstElement().getText();
System.out.println(response);
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
4,运行client结果
req:<example1:sayHello xmlns:example1="http://example1.org/example1"><example1:personToGreet>John</example1:personToGreet></example1:sayHello>
res:<example1:sayHelloResponse xmlns:example1="http://example1.org/example1"><example1:greeting>Hello, John</example1:greeting></example1:sayHelloResponse>
Hello, John
分享到:
相关推荐
### Axis2 WebService 开发总结 #### 一、概述 本文档主要介绍使用 Axis2 进行 WebService 开发的基本步骤和技术要点。Axis2 是 Apache 组织下的一个开源项目,它提供了一种简单有效的方式来构建和部署 Web...
### Axis2 WebService 入门手册知识点详解 #### 一、Axis2简介 **1. AXIOM (AXIs Object Model)** - **定义**:AXIOM 是 Axis2 中用于处理 XML 的核心模型。它不同于传统的 DOM 和 SAX 解析方式,提供了更高效、...
通过在类上添加服务接口和操作注解,如@WebService和@WebMethod,Axis2可以自动处理服务的编组和反编组。这种方式简单易懂,适合快速开发,但缺少对XML结构的精细控制。 2. AXIOM方式: AXIOM(Abstract XML ...
【WebService_Axis2_经典教程】是一篇关于使用Apache Axis2框架开发Web服务的教程。Apache Axis2是一个高效的Web服务引擎,它不仅支持SOAP 1.1和SOAP 1.2协议,还集成了RESTful Web服务以及Spring和JSON等流行技术。...
总之,Java Webservice Axis2 Client的开发涉及到生成客户端代码、设置SOAP Header、调用服务和处理响应等多个步骤。了解这些概念和API对于构建安全、可靠的Web服务客户端至关重要。在实际项目中,确保遵循最佳实践...
开发项目中如何选择使用 Axis2 和其它的WebService: * 如果你的应用程序需要支持多语言即有 C++, .net, Java,你应该选择 Axis2。 * 如果应用程序是遵循 Spring 哲学路线的话,ApacheCXF 或者 Spring WS 是一种更...
【axis_webservice_接口文档】主要讲解了如何使用SOAP和AXIS2技术来创建和使用Web服务。SOAP(简单对象访问协议)是一种基于XML的协议,用于在分布式环境中交换结构化信息,而AXIS2是Apache的一个开源Web服务框架,...
通过理解RPC调用、OMElement和Axis2的自动序列化机制,开发者可以有效地构建和维护自己的Web服务。此外,测试代码和配置文件可以帮助我们更好地理解和调试服务,确保其正常运行。在实际开发中,这种知识将大大提升...
前两天做一个Webservice接口工作,有位经理曾经对我说,如果你解决过一个问题,那么你以后必须成为这个领域的专家,不然等同于...所以在有时间的情况下,我简单做一下使用axis2作为客户端的情况下一些编码的实现内容。
### 使用Axis2进行WebService开发、部署与调用详解 #### 一、Axis2简介 Axis2是Apache组织下的一个开源项目,它是一个基于Java的WebService框架。Axis2提供了丰富的功能来构建、部署以及调用WebService,它支持...
### 如何用Axis2开发Web服务 #### 一、引言 随着互联网技术的发展,Web服务作为一种新兴的应用程序分支,在企业级系统集成、跨组织数据交换等方面发挥了重要作用。Web服务通常指的是在网络上公开的一种应用程序...
【描述】:本文档是通往架构师学习路径的一部分,主要关注Axis2框架下的Web Service开发,尤其是关于SOAP特性的应用。 【标签】:Axis2 WebService 在深入探讨轴心(Axis2)中的SOAP特性之前,先回顾一下SOAP...
在本文中,我们将深入探讨Web服务的核心概念,包括服务端和客户端的实现,特别是关注Java环境下的实现——使用JDK原生API与Axis2框架。 首先,让我们从服务端开始。在Java中,我们可以利用JDK自带的JAX-WS(Java ...
在前一天的讲解中,我们了解了如何生成一个基于Axis2的WebService,以及四种不同的客户端调用方式:传统式、非阻塞式、双工模式和双工非阻塞。现在我们将深入到使用简单Java类型来定义WebService的方法。 1. **使用...
在企业级应用开发中,SAP WebService 的集成是一项重要的任务。本文将详细介绍如何通过 Java 来解析并调用 SAP 提供的 WebService 接口,特别是涉及密码认证的情况。 #### 一、准备工作 1. **下载 Axis2:** - ...
### WebService配置详解:Tomcat + Eclipse + JDK1.5 + Axis 在本文中,我们将深入探讨如何在基于Tomcat服务器、Eclipse IDE以及JDK 1.5的环境中配置WebService,具体使用的是Apache Axis框架。这篇教程适用于希望...
Axis2提供了代码第一和WSDL第一两种开发模式。客户端可以通过`AxisClient`或`ServiceStub`进行调用: ```java ConfigurationContext configContext = ConfigurationContextFactory....
在开发Web Service客户端之前,首先需要确保已安装并配置了Apache Axis2。这通常包括下载Axis2的发行版,将其解压到合适的位置,并将相关的JAR包添加到项目的类路径中。在示例代码中,可以看到所需的Jar包,这些包...