如何将HashMap作为Java Web Service的输入?

时间:2011-04-25 18:02:05

标签: java web-services hashmap tibco

我收到了这个错误:

服务类“myclass”不符合JAX-RPC 1.1规范的一个或多个要求,可能无法正确部署或运行​​。   服务类“myclass”上的方法“mymethod”使用JAX-RPC规范不支持的数据类型“java.util.Map”。该类型的实例可能无法正确序列化或反序列化。可能会导致数据丢失或Web服务完全失败。

所以,我不知道如何使用这种类型的数据,作为输入我有这个:

Map<String, String>[] complex

我把它作为一个数组,因为Tibco(一个集成工具)无法将hashmap视为各种元素。

提前致谢!

3 个答案:

答案 0 :(得分:1)

作为旁注,如果您正在编写 Web服务,则应考虑使用适度的近期技术。 jax-rpc 非常过时,并使用非常痛苦的肥皂编码。考虑使用jax-ws(最近内置于jdk中)或其他一些使用document-literal编码的webservices实现。

答案 1 :(得分:0)

Map是一个界面,因此您无法使用它,但您可以使用以下支持的实现类之一:

请参阅此链接以获取受支持的实现类 - 标题为JAX-RPC类型支持的部分

支持的类型:http://sentex.net/~pkomisar/WS/WS_8_JAX-RPC.html

答案 2 :(得分:0)

Web服务应该可以跨编程语言进行互操作,java.util.Map是特定于Java的。您应该为该方法编写一个外观,将Map的内容转换为数组。