当前位置: 首页 > 知识库问答 >
问题:

向camelendpoint发送消息时的SOAP版本mistmach

孙昂然
2023-03-14

我用camel和cxf创建了webservice。我的bean的设置:

@Bean
open fun cxfServlet(): ServletRegistrationBean<CXFServlet> {
    val servlet = ServletRegistrationBean(CXFServlet(), "/ws/*")
    servlet.setLoadOnStartup(1)
    servlet.setName("cxfServlet")
    return servlet
}

@Bean
open fun cxf(): Bus {
    return BusFactory.newInstance().createBus()
}

@Bean("etp")
open fun cxfEndpoint(): CxfEndpoint {
    val endpoint = CxfEndpoint()
    endpoint.beanId = "etp"
    endpoint.address = "/etp"
    endpoint.serviceClass = Product::class.java
    endpoint.wsdlURL = "wsdl/example.wsdl"
    endpoint.dataFormat = DataFormat.POJO
    endpoint.bindingId = SOAPBinding.SOAP12HTTP_BINDING
    return endpoint
}

在路线中,我尝试接收消息,以便:

from("cxf:bean:etp")
    .log(">> etp: start")

但当我从soapUI发送消息时,我得到一个错误:

组织。阿帕奇。cxf。结合肥皂SoapFault:SOAP 1.2消息发送到仅SOAP 1.1endpoint时无效。

但是如果我设置dataFormat值“RAW”:

endpoint.dataFormat = DataFormat.RAW

错误消失了。有什么问题吗?

我找到了soap绑定的xml设置:

<cxf:binding>
    <soap:soapBinding version="1.2"/>
</cxf:binding>

但是我应该把它放在哪里呢?

共有1个答案

夏侯臻
2023-03-14

问题出在WSDL文件中。它有命名空间:

xmlns:soap=”http://schemas.xmlsoap.org/wsdl/soap/“”


如果要创建一个服务,应该设置以下命名空间:

xmlns:soap=”http://schemas.xmlsoap.org/wsdl/soap12/“”

 类似资料:
  • 我有一个问题与产生的消息Kafka的主题。 我使用来自外部供应商的Kafka管理服务,所以我问他经纪人的状况,他说一切都好。顺便说一句,它发生在三个不同的Kafka实例上。Kafka客户端版本也无关紧要-0.11.0.0和2.0.1都有。

  • 我有一个应用程序,它定期生成原始JSON消息数组。我能够使用avro-tools将其转换为Avro。我这样做是因为由于Kafka-Connect JDBC接收器的限制,我需要消息包含模式。我可以在记事本上打开这个文件,看到它包括模式和几行数据。 现在,我想将其发送到我的中央Kafka代理,然后使用Kafka Connect JDBC接收器将数据放入数据库。我很难理解我应该如何将这些Avro文件发送

  • 我是Kafka的新手,当我试图发送信息到我得到的主题下面的错误。有人能帮我一下吗? [2018-09-23 13:37:56,613]警告[Producer Clientid=Console-Producer]无法建立到节点-1的连接。代理可能不可用。(org.apache.kafka.clients.NetworkClient)

  • 我正在尝试使用Slack传入的Webhook发送消息。我有以下代码。它运行,但当我检查我的松弛时,没有消息。谁能看出我做错了什么。

  • 我正在为android中的knx模块开发一个串口应用程序。我可以向knx modulde发送和接收赞扬。当从serialport接收到消息时,我想更改ui(例如按钮属性)。我用处理程序试过了,但我无法更改ui。帮我一把。 @覆盖公共空OnSerialsData(最终字节[]缓冲区,最终int大小){......} 它是我的串行端口侦听器函数,调用insine ReadThread。此线程从我的活动

  • 我正试图弄清楚如何使用Firebase向Android推送通知,并使用遗留HTTP使其正常工作(https://fcm.googleapis.com/fcm/send)但文件建议使用较新的endpoint(https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send).我似乎无法让它工作,因为我一直得到这样的回应: 使用h