gpt4 book ai didi

web-services - 在 jboss fuse 中使用 cxf 的 Web 服务端点

转载 作者:行者123 更新时间:2023-12-03 17:50:13 29 4
gpt4 key购买 nike

我正在使用 jboss fuse 6.1-final:

这是我的简单路线:

<route>
<from uri="cxf:bean:synchronousEndpoint"/>
<log message="Service invoked." />
<process ref="simpleProcessor"/>
</route>

simpleProcessor我将正确的响应(即相应的 JAXB 对象)放到上下文中。但是,它响应错误:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Marshalling Error: java.lang.Object cannot be cast to org.w3c.dom.Element</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>

这是堆栈跟踪:
Caused by: java.lang.ClassCastException: java.lang.Object cannot be cast to org.w3c.dom.Element

有什么提示或建议吗?

最佳答案

如果没有看到来自 simpleProcessor 的更多代码,很难说。但是,您似乎使用了错误的 dataFormat 参数。

cxf 组件有一个 dataFormat 参数,它可以是以下任何一种:

  • POJO :POJO(普通旧 Java 对象)是
    在目标服务器上调用的方法。协议(protocol)和逻辑
    支持 JAX-WS 处理程序。
  • 有效载荷 : PAYLOAD 是消息负载(
    soap:body) 在 CXF 端点中的消息配置之后是
    应用。仅支持协议(protocol) JAX-WS 处理程序。逻辑 JAX-WS
    不支持处理程序。
  • 留言 : MESSAGE 是从
    传输层。不应触摸或更改 Stream,其中一些
    如果您使用这种类型的 CXF 拦截器将被删除
    数据格式,因此您在 camel-cxf 之后看不到任何肥皂标题
    不支持使用者和 JAX-WS 处理程序。
  • CXF_MESSAGE : Camel 2.8.2 中的新功能,CXF_MESSAGE 允许调用
    通过将消息从
    将传输层转换为原始 SOAP 消息

  • 默认是 POJO,这意味着没有 XML 被作为消息传递 Camel 正在传递对象。我怀疑您可能正试图将响应作为 XML 来操作,这会导致问题。

    不久前,当我收到 POJO 时,我试图通过对 XML 执行 XPATH 查询来将 POJO 转换为 XML,我遇到了类似的情况。

    关于web-services - 在 jboss fuse 中使用 cxf 的 Web 服务端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23649205/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com