- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下测试:
public class MyTest extends CamelSpringTestSupport {
@Override
protected AbstractXmlApplicationContext createApplicationContext() {
return new ClassPathXmlApplicationContext(new String[] {
"classpath:my-config.xml",
});
}
@Test
public void testSomething() throws Exception {
Exchange exchange = new DefaultExchange(context);
exchange.getIn().setHeader("myId", "1234");
MessageContentsList parameters = new MessageContentsList();
parameters.add(0, "");
parameters.add(1, "1234");
exchange.getIn().setBody(parameters);
System.out.println("exchange before = " + System.identityHashCode(exchange)); //1657040467
template.send("direct:myRoute", exchange);
Object object = exchange.getOut().getBody();
System.out.println("result = " + object); //null
System.out.println("exchange after = " + System.identityHashCode(exchange)); //1657040467
assertFalse(exchange.isFailed());
}
}
这是路线“direct:myRoute”中的最后一步:
public void doSomething(Exchange exchange)
{
System.out.println("exchange within = " + System.identityHashCode(exchange)); //1649140180
exchange.getOut().setBody(1);
}
我的路线是由 RouteBuilder
类定义的,我通过以下方式加载它们
<camelContext id="mainContext" xmlns="http://camel.apache.org/schema/spring">
<packageScan>
<package>com.my.route</package>
</packageScan>
</camelContext>
也可以通过代码动态地实现:
((CamelContext) applicationContext.getBean("mainContext")).addRoutes(routeBuilder);
正如您所看到的,当我从测试中调用路由时,我无法检索路由的输出,因为在测试中由于某种原因它是一个不同的交换对象(但是,原始交换 header 和属性以某种方式复制到路线内的交换站)。当我通过 XML 定义路由时,不会出现此问题。
这是为什么?当我从测试中调用路由时,如何检索该路由的结果?
最佳答案
我不是100%确定,但我不认为你可以这样写。
template.send("direct:myRoute", exchange);
Object object = exchange.getOut().getBody();
理想情况下应该是:
Exchange out=null;
out=template.requestBody("direct:myRoute", exchange);
String body=out.getOut().getBody();
为此,您需要将交换模式设置为 InOut。有关模板的更多信息: https://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/ProducerTemplate.html
关于java - Camel 测试模板使用与我发送的交换器不同的交换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33901092/
我正在尝试编写一个应用程序来测试将 N 个交换器绑定(bind)到内存、IO 等相同队列的效果。 所有测试都使用“主题”交换类型。我遇到的问题是,当我测试超过 1 个交换时,我没有收到我发布回来的所有
这似乎是一个非常基本的操作,但我找不到在 RabbitMQ 中删除命名交换的方法。我在 Windows 上运行它并使用命令行工具。在这一点上,如果存在的话,我会接受一个 .NET API 调用来删除一
public static void main(String[] args) throws Exception { final Exchanger exchanger = new Exchan
我有一个显示 3 张图片的页面,用户应该点击其中一张,然后点击“下一步”按钮继续。 基本上,我只是在点击图像时向图像添加一些 CSS。 但是...我的代码很丑陋,并且不跟踪他们是否已经选择了一个。
我使用RabbitMQ和Spring AMQP发送消息。 我有这个片段: rabbitTemplate.convertAndSend(exchange, key, object); 当我在单个 VHO
我尝试根据此网站启用交换:https://linuxize.com/post/create-a-linux-swap-file/ 当我跑 sudo swapon /swapfile ,它返回了这个错误
我是一名优秀的程序员,十分优秀!