gpt4 book ai didi

java - 从 JUnit 测试用例调用部署在远程服务器中的 Camel 端点

转载 作者:行者123 更新时间:2023-12-02 08:10:22 25 4
gpt4 key购买 nike

我是 Camel 的新手,必须在很短的时间内交付一个模块。我的问题可能是一个非常基本的问题,但如果有人可以指导我,我将非常感激。

要求是从 jUnit 测试用例调用部署在 Tomcat 服务器中的 Camel 端点服务。该服务已注入(inject) CamelContext,并且它有一组需要调用的公开方法。我们在项目中使用 Spring 2.5 和 Camel 2。 Spring配置如下

<bean name="/DispatcherService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
<property name="service" ref="dispatcherService">
<property name="serviceInterface" value="test.DispatcherService">
</bean>

<camelContext id="dispatcherCamelContext" trace="true" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:dispatcherChannel" />
<!-- use comma as a delimiter for String based values -->
<recipientList delimiter=",">
<header&gt;serviceEndpoints&lt;/header>
</recipientList>
</route>
</camelContext>

<bean id="dispatcherService" class="test.DispatcherServiceImpl">
<property name="context" ref="dispatcherCamelContext" />
</bean>

我找不到的是如何从 jUnit 调用部署在 tomcat 服务器 (http://someIP:8080) 中的端点 URI direct:dispatcherChannel Spring 配置。

最佳答案

“直接”端点只能从同一虚拟机内访问。如果需要从外部访问路由,可以使用 JMX 来实现或者使用 JMS 将其与另一个路由包装起来或HTTP 。这两种方法都允许您手动测试/调试已部署的路由...

  • JMX ,您只需要导航到 Camel Context MBean(使用 jconsole 等)并执行 sendBody("direct:dispatcherChannel","test message") 操作

  • 要使用 HTTP 封装路由,只需添加此路由,然后在浏览器中转到此 URL 即可调用该路由...

    from("jetty:http://0.0.0.0:9001/invokeDispatcherChannel")
    .to("direct:dispatcherChannel");
  • 如果您需要发送有效负载,您可以考虑通过 JMS(或 WS 等)公开路由,并在调用路由之前转换为预期格式。然后,您只需在队列中删除一条消息(使用 JMX、AMQ web console 等)即可调用直接路由。

    from("activemq:queue:invokeDispatcherChannel")
    .process(new MyMessageConverterProcessor())
    .to("direct:dispatcherChannel");

关于java - 从 JUnit 测试用例调用部署在远程服务器中的 Camel 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7538741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com