我正在开发一个关于Spring集成的POC,使用如下。
我的spring int-config-xml有以下内容
<int-ws:outbound-gateway id="marshallingGateway" request-channel="mdmIntInputChannel" reply-channel="mdmIntOutputChannel"
uri="ws-endpoint" marshaller="marshaller" unmarshaller="marshaller"/>
<oxm:jaxb2-marshaller id="marshaller" contextPath="com.veeaar.ws.types.jaxb"/>
在我的Spring集成proj工作区中拥有所有jaxb生成的源代码。
在STS 3.8中执行此操作时。3,将抛出以下错误。
不确定我的代码中有什么错误。任何解决这一问题的帮助都是高度赞赏的。谢谢。
Caused by: org.springframework.oxm.MarshallingFailureException: JAXB marshalling exception; nested exception is javax.xml.bind.MarshalException
- with linked exception:
[Exception [EclipseLink-25007] (Eclipse Persistence Services - 2.6.1.v20150916-55dc7c3): org.eclipse.persistence.exceptions.XMLMarshalException
Exception Description: A descriptor for class java.lang.String was not found in the project. For JAXB, if the JAXBContext was bootstrapped using TypeMappingInfo[] you must call a marshal method that accepts TypeMappingInfo as an input parameter.]
at org.springframework.oxm.jaxb.Jaxb2Marshaller.convertJaxbException(Jaxb2Marshaller.java:908)
at org.springframework.oxm.jaxb.Jaxb2Marshaller.marshal(Jaxb2Marshaller.java:684)
at org.springframework.ws.support.MarshallingUtils.marshal(MarshallingUtils.java:81)
at org.springframework.integration.ws.MarshallingWebServiceOutboundGateway$MarshallingRequestMessageCallback.doWithMessageInternal(MarshallingWebServiceOutboundGateway.java:129)
at org.springframework.integration.ws.AbstractWebServiceOutboundGateway$RequestMessageCallback.doWithMessage(AbstractWebServiceOutboundGateway.java:233)
at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:590)
at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:555)
at org.springframework.integration.ws.MarshallingWebServiceOutboundGateway.doHandle(MarshallingWebServiceOutboundGateway.java:87)
at org.springframework.integration.ws.AbstractWebServiceOutboundGateway.handleRequestMessage(AbstractWebServiceOutboundGateway.java:188)
at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:109)
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127)
... 36 more
我在这里进一步解释我的POC,以了解在调用远程Web服务之前为什么需要JAXB转换。
我在SpringInteg中进行的XSL转换将“Event”的输入消息转换为“fetchCodeByName”,如下所示。
<tns:fetchCodeByName xmlns:tns="http://www.veeaar.com/remote/wsdl/2010-1" xmlns:ns1="http://www.veeaar.com/remote/xml/2010-1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<ns1:Code>
<Name>xxx</Name>
</ns1:Code>
</tns:fetchCodeByName>
在WSDL中,felchCodeByName映射到ns1命名空间的CodesType。已经从代码模式XSD生成了JAXB类。
在调用远程Web服务之前,如果我创建了一个服务激活器并尝试取消编组到JAXB对象的转换输出,我们会得到错误报告作为取消编组任务,期望'Codes'作为根元素,而不是'getchCodeByName'。
如何解决这个问题?
在Spring集成中,我们是否可以调用远程web服务而不需要marshall和解组输入消息?我们不能直接将XSLT输出定向到int ws:outbound gateway吗?
为什么需要在WS出站网关之前散集?你看,然后你再列表一次!只需使用简单的WS出站网关变体(没有封送器),并按原样在其输入通道中发送XSLT转换器结果。
我有一个 FileUpload 事件,应该将其发送到 http:outbound upload URL。为此,我必须首先对登录 URL 进行身份验证并获取响应,并设置要执行的出站上传 URL 的会话 ID。在我的情况下,我有一个事件侦听器,它侦听应用程序以发布文件上传事件。发布后,我的侦听器可以拾取并执行流。我正在尝试了解如何实现这一点,因为文件上传对象需要保留,直到登录响应返回。谢谢!
我正在尝试将spring集成配置为向队列发送消息,然后接收消息,即非常简单的事情: 我认为解耦所必需的是在流程的两端都有一个消息网关。因此,我的第一次尝试(有效)如下所示: 其中MessageReceiverHandler()是扩展AbstractMessageHandler的bean。 所以上面我们有一个用于出站消息的消息网关。我假设我们也应该有一个用于入站消息的网关,允许我们将传入消息处理与应
我正在尝试调用一个 webservice(spring-ws),它使用 ws:outbound-gateway 从 spring 集成中调用。我使用jaxb2marshaller进行oxm映射。最初,我使用 jms:inbound-channel-adapter 来接收输入对象,将其转换为 JAXBElement(Sample),其中 Sample 由 JAXB 从 WS-XSD 模式生成。对象工
我们使用ws-outbound-gateway以下面的方式调用webservice。 如果请求xml采用以下方式,则工作正常。 如果我在请求xml中添加SOAP-ENV:Envelope xmlns:SOAP-ENV = " http://schemas . xmlsoap . org/SOAP/Envelope/"和SOAP-ENV:Body,它将抛出如下错误: org.springframew
我正在开发一个Spring集成应用程序,我有一个地图列表,我需要将其插入到表格中。 我使用了jdbc: Outsport-网关或适配器将记录插入到表中。 但是如何使用jdbc:出站网关从我的地图列表中插入所有记录。
在带有Java配置的ftp出站网关的Spring集成文档示例(16.8.1)中,如何将应答通道的有效负载记录到控制台?