我想通过Apache Camel调用Web服务,数据格式是MESSAGE。我想构造以下SOAP消息:
<soapenv:Envelope`enter code here`
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<platformMsgs:documentInfo
xmlns:platformMsgs="urn:messages_2015_1.platform.webservices.netsuite.com">
<platformMsgs:nsId>WEBSERVICES_3479023</platformMsgs:nsId>
</platformMsgs:documentInfo>
</soapenv:Header>
<soapenv:Body>
<addListResponse
xmlns="">
<platformMsgs:writeResponseList
xmlns:platformMsgs="urn:messages_2015_1.platform.webservices.netsuite.com">
<platformCore:status isSuccess="true"
xmlns:platformCore="urn:core_2015_1.platform.webservices.netsuite.com"/>
<platformMsgs:writeResponse>
<platformCore:status isSuccess="false"
xmlns:platformCore="urn:core_2015_1.platform.webservices.netsuite.com">
<platformCore:statusDetail type="ERROR">
<platformCore:code>DUP_ENTITY</platformCore:code>
<platformCore:message>This entity already exists.</platformCore:message>
</platformCore:statusDetail>
</platformCore:status>
</platformMsgs:writeResponse>
</platformMsgs:writeResponseList>
</addListResponse>`enter code here`
</soapenv:Body>
</soapenv:Envelope>
有人能帮我介绍一些代码片段或示例来说明如何创建此SOAP消息吗?
我可以为您提供一些关于如何在Spring DSL中使用CXF POJO格式的想法。
Spring上下文可能如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<spring:beans xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel-cxf="http://camel.apache.org/schema/cxf"
xmlns:camel-spring="http://camel.apache.org/schema/spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<!-- inbound Service endpoint -->
<camel-cxf:cxfEndpoint id="my-test-endpoint"
address="/myTest" serviceName="mySrv:MyService"
serviceClass="com.foo.myservice.MyServicePortPortType"
endpointName="mySrv:MyServicePortPort"
wsdlURL="classpath:myTest.wsdl"
xmlns:mySrv="http://foo.com/myService/">
<camel-cxf:properties>
<spring:entry key="dataFormat" value="POJO" />
...
</camel-cxf:properties>
</camel-cxf:cxfEndpoint>
...
<camel-spring:camelContext id="MyTestService_Ctx">
...
<camel-spring:route id="myTest-route">
<camel-spring:from uri="cxf:bean:my-test-endpoint"
id="inbound-myTest-service" />
...
很简单:
>
在Spring中,您将cxfendpoint定义为{http://camel.apache.org/schema/cxf}cxfEndpoint
bean,
然后通过uri从Camel-route-from或to-components对其进行引用,uri如下所示:uri=“cxf:bean:{endpointbean-id}”
那么您可能有两个案例:案例1。WSDL将标头定义为消息的一部分。Maven CXF插件生成的售后服务:
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
只需检查服务接口的外观。
案例2:WSDL没有定义自定义头,您需要添加它。
对于两者,请查看我对另一个问题的回答:使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头
P、 如果出于某些原因不需要显式封送/解封送JAXB POJO,则不需要其他任何东西。您不关心SOAP等。CXF将从您的WSDL定义为您做这件事。
我正在使用apache camel cxf开发一个Web服务(肥皂),我遇到了这个错误。 Java . lang . illegalargumentexception:Part { http://blue print . camel . ngt . TN/}返回的类型应为[ltn . ngt . camel . blue print . WB _ subscriptions;,而不是org . A
我在CXF(或者一般的SOAP)中遇到了这个问题。当我在服务器端和客户端同时启用MTOM请求时,我的应用程序工作得很好,Java堆大小不会成倍增长。但是,如果某些客户机决定不使用MTOM发送大的(我的意思是500MB+附件作为B64编码格式)消息,就会出现问题,这会导致Java堆大小成倍增长,当然也会发生OutOfMemoryException(OutOfMemoryException)。 那么我
Tomcat日志文件显示: 严重:向类org的侦听器实例发送上下文初始化事件时发生异常。springframework。网状物上下文ContextLoaderListener组织。springframework。豆。工厂BeanCreationException:创建名为“accountDetailsService”的bean时出错:调用init方法失败;嵌套异常为java。lang.NoSuch
我对cxf soap头有问题。我使用Contract-firs开发方法建立了一个cxf项目。我想调用带有cxf组件的web服务,如下所示。 我想发送一个pojo消息,抛出一个直接组件作为对ws的请求。我的路线如下所示: 我需要实现这样一个soap头: 为了将其归档,我编写了一个这样的处理器(另请参见http://camel.apache.org/cxf.html): 不幸的是,我在这条语句中得到了
我希望能够在cxf中每次发送soap消息时动态更改/设置ws-security信息。如何才能最好地做到这一点。 详细信息:我想更改密钥库名称、密钥库别名、密码、主机名等设置。。在运行时,最好是每次发送消息。目前我正在使用:jaxws-client和WSS4JOutInterceptor以及wss4jinterceptor进行签名。我正在使用http导管和tls客户端参数进行SSL/tls通信。ja
我需要使用相同的SOAP请求才能调用相同的方法实现,但该方法由2个不同的服务endpoint公开: endpointA-将用于通过SOAP进行同步访问 endpointB-将用于通过JMS进行异步访问 现在我看到的是,在JMS和SOAP webserviceendpoint上工作的SOAP请求消息在结构上是不同的。 我想知道使用ApacheCXF是否可以使用相同的SOAP请求调用SOAP或JMSe