我需要从我在春豆中收到的交换对象获取 SOAP 消息。
我有一个骆驼路由,它从服务endpoint路由到我的javabean。Spring宣布的Java Bean和Camel路线如下:
<bean id="processor" class="com.groupgti.esb.camel.wrapper.gradireland.userregistration.UserRegistrationProcessor">
<camel:route id="route">
<camel:from uri="cxf:bean:myListenerEndpoint?dataFormat=PAYLOAD&synchronous=true" />
<camel:bean ref="processor" />
<camel:to uri="cxf:bean:myTargetEndpoint"/>
</camel:route>
在我的java bean中,我接收交换对象:
@Override
public SOAPMessage processMessage(Exchange exchange) {
Object object = exchange.getIn().getHeaders().get("CamelCxfMessage");
LOGGER.debug("Object: " + object);
SOAPMessage message = null;
if (object instanceof SOAPMessage) {
message = (SOAPMessage) object;
LOGGER.debug("Got message: " + message);
}
LOGGER.debug("Sending message...");
return message;
}
问题是我无法从交换中获取SOAP消息。我骆驼网站,在这里我发现我必须使用这个来获取SOAP消息:
SOAPMessage soapMessage = (SOAPMessage) exchange.getIn().getBody(List.class).get(0);
但是他给了我< code > NullPointerException 交换中的某个深度。
我试着调试并查看对象树。我发现我可以得到这样的信息:
SOAPMessage soapMessage = (SOAPMessage) exchange.getIn().getHeaders().get("CamelCxfMessage");
但这给了我一个例外:
org.apache.camel.ExpectedBodyTypeException: Could not extract IN message body as type: interface javax.xml.transform.Source body is: null
我被困在这里了。也许有人知道问题出在哪里?
有效负载模式不是一个简单的方法,也许你应该尝试CXF的POJO模式,并摆脱SoapMessage。您必须声明带有 JAXB 注释的 POJO,例如
@XmlAccessorType(XmlAccessType.FIELD)
public class Registration {
private Long roomNumber;
...
}
这将允许您直接处理处理器中的注册类(我认为这是您的最终目标)。
Registration registration = exchange.getIn().getBody(Registration.class);
如果您坚持使用 PAYLOAD 模式,请注意您可以编写
SOAPMessage soapMessage = exchange.getIn().getHeader(CxfConstants.CAMEL_CXF_MESSAGE, SOAPMessage.class);
此协议用于门店获取会员卡交易流水(只返回最近20条数据) 请求参数说明 参数 描述 必填 示例值 类型 最大长度 action 接口参数组 是 object └action 需要调用的接口名称 是 mb_getmctrans string get GET参数组,本组参数需要参与签名 是 object └id 会员卡id(id、mbno二选其中之一) 否 9388974 number └mbno 会
但客户网站上说: 已发送PayPal Express结账付款(唯一交易ID 7PK53077PJ222701T)
问题内容: 使用来获取Cookie 似乎很简单,它似乎将Cookie存储在其他位置。 我做了一些研究,然后从对象中获取了一些Cookie 。但是,其中不包含: 奇怪的是,ios 9中还有一个类负责管理中的cookie ,但是,该类不包含用于检索cookie数据的公共方法: 是否有解决方法来获取Cookie数据? 问题答案: 最后,对于登陆iOS的11。 https://developer.appl
我已经将PayUMoney与我的android应用程序集成在一起,交易正常工作,但我没有得到任何响应数据,我必须根据支付交易的状态执行一些操作(如果成功,我必须执行一些操作,如果失败,我必须执行一些其他操作)。 这是我的代码
我想从区块链中获取某个地址(地址A)的所有收据记录。我使用web3。eth公司。getBlock和web3。eth公司。getTransaction获取与A相关的所有事务。但我发现,如果通过调用合同中的“A.send”或“A.transfer”函数将以太传输到地址A,我只能获取从调用方地址到合同地址的合同调用事务。我找不到这个事务和地址A之间的关系。有没有办法让A的合同调用事务?谢谢
交易 为了与Infura节点进行交易,需要在发送它们之前离线创建交易和签名,因为Infura节点没有加密的以太坊密钥文件的访问权限,这是需要通过geth或者Parity管理命令来解锁帐户。 有关详细信息,请参阅以太坊交易中离线交易和签名部分和web3j如何使用管理APIs。