使用最新的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?
答案 0 :(得分:0)
PROTOCOL_HEADERS值对象应该是一个可以用作HTTP头的映射。
您必须对PROTOCOL_HEADERS的消息上下文进行一些更改。