axis2发布的webservice,其中映射出去的方法的参数是不是不能为Object或者Map?
要是方法参数是Object或者Map,该怎么处理呢?请想想主意,谢谢!
例子:
服务器端代码:
public class DataSynchronization {
private BeanHandlerDAO beanHandlerDAO;
public void updateBean(Object hBean) {
try {
beanHandlerDAO.updateBean(hBean);
} catch (Exception e) {
logger.error("WS更新bean时错误!", e);
}
}
}
客户端代码:
public class DataSynchronizationRCPClient {
public static void synBeanUpdate(Object bean) throws AxisFault {
RPCServiceClient serviceClient = new RPCServiceClient();
Options op = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference("http://192.168.0.9:8080/axis2/services/DataSynchronization");
op.setTo(targetEPR);
QName opUpdateBean = new QName("http://server.webservice.datasyn.core.kmp.gei.com.cn/xsd","updateBean");
Object[] opUpdateBeanArgs = new Object[] { bean };
serviceClient.invokeRobust(opUpdateBean, opUpdateBeanArgs);
}
}
上面是我写的一个例子,其中updateBean是webservice发布出去的方法,参数是Object,但调用的时候会抛出这样的Exception: java.lang.InstantiationException但,要是把updateBean这个方法的参数换成具体的实体类,例如:updateBean(TestBean tb),这样发布的webservice就没有问题。
这到底是为什么?是因为axis2不支持呢?还是程序写的有问题?
分享到:
相关推荐
Web Service是一种常见的通信方式,而Axis2是Apache组织提供的一款强大的Web Service框架,它支持SOAP和RESTful服务。本文将详细介绍如何在Android应用中利用Axis2来调用Web Service。 **一、Android与Web Service...
2. 高性能:Axis 使用了高性能的 SOAP messaging 机制来调用 Web 服务。 3. 可扩展性:Axis 提供了丰富的 API,允许开发者自定义和扩展 Axis 的功能。 Axis 的缺点 虽然 Axis 是一个功能强大且流行的 Web 服务框架...
这个页面可以获取并遍历服务映射(`Constants.SERVICE_MAP`)中的服务,为每个服务提供一个链接,该链接指向服务的WSDL定义。 5. **开发Web服务**: - 使用Spring的`@WebService`注解标记你的服务类,并通过`@...
为了与 Axis2 服务进行交互,客户端也需要安装必要的库和依赖。 ##### 3.1 导入包 客户端需要导入 Axis2 的客户端库以及相关的 Java 类库。这些库通常包含在 Axis2 的二进制分发包中。 ##### 3.2 示例代码 下面...
Axis支持SOAP协议,能够简化WebService的创建、部署和调用过程,同时具备丰富的文档和社区支持,使得开发者能够快速上手并解决遇到的问题。 #### Axis 1.4 使用详解 ##### 2.1 Axis 1.4 框架概览 Apache Axis 1.4...
总结来说,Java通过Apache Axis调用.NET ASMX WebService主要涉及以下几个步骤: 1. 添加必要的依赖库。 2. 创建Service和Call对象。 3. 设置目标Web服务地址、操作名称、参数和返回类型。 4. 调用Web服务方法并接收...
Map, Object> map = new HashMap, Object>(); map.put("serSupplier", "afasfasf"); map.put("callTime", "ffffffffff"); Map, WebServiceResultBean> rs = ser.invoke("EOMS", "isAlive1", map); System....
Map, Object> map = new HashMap, Object>(); map.put("serSupplier", "afasfasf"); map.put("callTime", "ffffffffff"); Map, WebServiceResultBean> rs = ser.invoke("EOMS", "isAlive1", map); System....
1. **创建RPCServiceClient对象**:首先创建一个`RPCServiceClient`对象,它是Axis2提供的用于调用远程服务的客户端类。 2. **设置选项**:接着设置客户端选项,包括服务的URL地址等。 3. **构造QName**:构建一个`...
在DEMO中,它可能被用来将Java对象转换为Json字符串,或者将接收到的Json字符串解析成Java对象。这个库提供了多种方法,如`JSONObject`、`JSONArray`,以及方便的JSON与Java Bean、Map等对象之间的转换功能。 文件`...
调用.NET WCF服务的其他方法,如AXIS和直接使用SOAP库,通常涉及到更多的配置和代码编写。相比之下,使用wsimport工具能简化这个过程,使得Java开发者能更方便地调用WCF服务。然而,这也意味着你需要对WSDL文件有...
源码可能用于演示如何创建、调用和管理Web服务,而工具可能包括用于生成WSDL文档、测试服务或者自动化部署的实用程序。 【文件名】:“Webservice.mmap” —— 这是一个MindMap(思维导图)文件,很可能详细展示了...
// 设置超时时间 Map, Object> context = ((BindingProvider) helloService).getRequestContext(); context.put(BindingProviderProperties.CONNECT_TIMEOUT, 5000); // 建立连接超时时间,单位为毫秒 context.put...
在给定的上下文中,解析后的结果被转换为`Map`或`List<Map>`,这使得操作数据变得非常直观和方便。通过这种方式,开发人员可以直接在业务逻辑中使用熟悉的Java集合API,而无需关心底层的XML结构。 此外,例子中提到...