将Object转换为Map时的CXF运行时异常

时间:2014-03-19 02:08:29

标签: string apache map casting cxf

使用最新的Apache CXF 2.7.10并获得运行时异常:

  

java.lang.ClassCastException:java.lang.String无法强制转换为   java.util.Map at   org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor.setSoapAction(SoapPreProtocolOutInterceptor.java:111)

我检查了那段代码并发现了这个类型。消息是Map<String, Object>

(Map<?, ?>)message.get(Message.PROTOCOL_HEADERS)

在该代码中出现了一个很糟糕的假设,即Object始终是Map。

我现在打算解决这个问题,所以我会一直追逐追踪。 同时;任何熟悉CXF的人都知道为什么我从Message.get()返回的Object是String而不是Map?

1 个答案:

答案 0 :(得分:0)

PROTOCOL_HEADERS值对象应该是一个可以用作HTTP头的映射。

您必须对PROTOCOL_HEADERS的消息上下文进行一些更改。