在axis1.4下开发一个webservice,要传递自定义类,需要声明如果序列化这个类,配置如下:
在server-config.wsdd中:
<service name="session" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="com.bxxk.yzscx.services.SessionService"/>
<beanMapping qname="ns:SessionData" xmlns:ns="urn:SessionData" languageSpecificType="java:com.bxxk.yzscx.vo.SessionData"/>
<beanMapping qname="ns:YdjwZxyh" xmlns:ns="urn:YdjwZxyh" languageSpecificType="java:com.bxxk.yzscx.common.entity.YdjwZxyh"/>
</service>
在调用端:
String wsdlUrl = url + "?wsdl";
String nameSpaceUri = url;
Service service = new Service();
Call call = null;
call = (Call) service.createCall();
QName qn = new QName("urn:SessionData", "SessionData");
call.registerTypeMapping(SessionData.class, qn,
new BeanSerializerFactory(SessionData.class, qn),
new BeanDeserializerFactory(SessionData.class, qn));
qn = new QName("urn:YdjwZxyh", "YdjwZxyh");
call.registerTypeMapping(YdjwZxyh.class, qn,
new BeanSerializerFactory(YdjwZxyh.class, qn),
new BeanDeserializerFactory(YdjwZxyh.class, qn));
call.setOperationName(new QName(nameSpaceUri, "getSessionList"));
call.setTargetEndpointAddress(new java.net.URL(wsdlUrl));
rs = (String) call.invoke((Object[]) null);
其他都一样,记录一下。
分享到:
相关推荐
在Web服务(WebService)开发中,我们经常需要传递自定义类的数据。然而,WebService通信的基础是XML或JSON,这些格式要求传输的数据能够被序列化和反序列化。默认情况下,只有基本数据类型和某些标准库中的对象可以...
本文将深入探讨如何在Axis框架下实现自定义数组对象的传递,这不仅是对框架特性的深入理解,也是提升Web服务功能性和灵活性的关键。 #### 二、关键概念解释 **1. 自定义数组对象:** - **定义:** 在Web服务中,...
这篇博客文章可能讨论了如何利用Axis1来处理非基本数据类型的交换,如自定义的JavaBean对象。 首先,我们需要理解什么是JavaBean。JavaBean是一种遵循特定规范的Java类,通常用于封装数据并提供getter和setter方法...
"传Object"是指在Web服务接口中可以传递自定义的Java对象。Axis2支持对象序列化和反序列化,使得对象可以被转换为XML格式在网络间传输,然后在接收端反序列化回对象。这对于跨系统的业务对象交换非常有用。 接着,...
在客户端,使用 Axis 的 Stub 或 Proxy 类来调用服务时,可以传递 Java 数组作为参数。这些数组会被自动转换为 SOAP 消息。同样,服务端接收请求后,ArrayMapping 会将 SOAP 消息解析成 Java 数组。 7. **自定义 ...
Axis2的API提供了丰富的接口和类,让开发者可以自定义各种行为。以下是一些关键API: - **Service**: 表示Web服务的接口,用于创建、部署和管理服务。 - **Operation**: 表示服务中的一个操作,定义了请求和响应的...
- `(axis2)` 文件夹可能包含Axis2的配置文件、服务部署文件(.aar)、服务接口定义(WSDL)、客户端代码(Stub类)等。 - `src` 文件夹可能包含源代码,包括服务端和客户端的Java类。 - `build.xml` 或类似的文件...
通过阅读文档,开发者可以学习如何配置 Axis2,设置服务部署,处理消息传递,以及集成各种WS-*规范,如WS-Security(Web服务安全)和WS-ReliableMessaging(可靠消息传递)。 其次,`axis2-1.6.2-src.zip` 文件包含...
2. **复合类型数据的传递**: Axis2支持复杂数据类型的传输,使得结构化的数据可以在Web Service之间安全地传递。 3. **services.xml文件发布Web Service**: Axis2提供services.xml文件来定义和管理服务,简化了...
7. **扩展与插件**:Apache Axis有一个强大的插件系统,允许开发者添加自定义的行为,如安全策略、性能优化等。例如,可以使用WS-Security插件实现Web服务的安全认证。 8. **错误处理**:当Web服务调用失败时,Axis...
同时,由于Axis是开源的,开发者可以根据需要自定义和扩展功能,使其更加符合特定项目的需求。在实际应用中,这些工具和库可以大大提高开发效率并减少错误,是Java Web服务开发不可或缺的部分。
此外,Axis还支持传递包含内部类的自定义对象以及通过RMI方式实现远程调用。 ### 抛出异常和传递文件 在开发WebService时,服务可能会遇到错误或异常。Axis提供了一种机制,允许开发者在服务中抛出异常,并通过...
Axis2的核心设计理念是模块化,它由多个模块组成,包括核心引擎、消息传递模块、服务部署模块等。这种设计允许开发者根据项目需求选择合适的模块,提高性能和灵活性。 **2. Web服务的创建** 使用Axis2,可以通过...
你可以使用 Axis 提供的测试工具或者自定义的测试程序来进行测试。 ### 6. 注意事项 - **版本兼容性**:确保 Axis 版本与所使用的 Java 版本、应用服务器版本兼容。 - **错误处理**:在服务端和客户端都要考虑异常...
本篇文章将详细介绍如何在Android环境中使用Ksoap2连接到Axis2服务,并且传递自定义类对象作为参数,以及如何处理XML响应。 **1. Android与Web服务通信基础** Android应用可以通过HTTP或HTTPS协议与Web服务进行通信...
例如,SimpleService类中的getGreeting和getPrice方法都是public的,Axis2会自动将这些方法暴露为WebService操作。在编写完业务逻辑代码后,只需要将.class文件放入Web容器,例如Tomcat的相应目录下,即可完成...
- 如果需要,创建并配置Axis的自定义模块或服务处理器。 - 将整个应用打包成WAR文件,并在Tomcat 7中部署。 7. **测试和调试**: 一旦部署,可以通过发送SOAP请求到服务URL来测试Web服务。可以使用像SoapUI这样的...
- **消息处理**:AXIS2允许用户自定义消息处理器,实现对消息的拦截、修改或过滤,以满足特定需求。 - **安全**:AXIS2支持WS-Security标准,可以实现认证、加密和签名,保证Web服务的安全性。 - **模块扩展**:...
6. 扩展性:Axis2允许添加自定义模块,如安全模块、缓存模块等,以满足特定需求。 通过阅读《Apache Axis2 - Axis2 Architecture Guide》和《Apache Axis2 - Axis2 Quick Start Guide》这两份文档,你可以更全面地...
- 创建自定义模块类,继承AbstractPhaseInterceptor。 - 实现interceptSend()和interceptReceive()方法。 - 配置Axis2以加载自定义模块。 ##### 10. 使用soapmonitor模块监视SOAP请求与响应消息 - **监控工具**...