Apache camel远程EJB调用通过JBOSS EAP 6.4失败

时间:2017-04-07 12:23:37

标签: java jboss apache-camel ejb

EJB调用是成功的,如果它部署在本地计算机中。如果远程jboss机器调用它,则抛出以下异常

Exchange-exception :java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:, moduleName:ejbmavendemo-0.0.1-SNAPSHOT, distinctName:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@43a094bf
at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:747)
at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:116)

camel-context.xml中使用的配置如下所示

click on this link to view the xml details

不确定,缺少什么。请建议

1 个答案:

答案 0 :(得分:0)

它可能有几个问题:

  • 连接:连接断开
  • security:user / pass invalid
  • EJB缺失:已连接,但ejb不存在
  • SSL

EJBClientContext将所有可用的接收器保留在服务器名称为密钥的Map中。如果有多个具有相同名称的服务器,则这些条目将丢失。

如果它位于服务器实例内部,则首选此实例,并隐藏具有相同服务器名称的所有其他实例。 在这种情况下,不会访问只有在这样的服务器上可用的EJB。

  • 检查出站连接
  • 检查目标服务器上的用户和密码(注意:需要是EAP应用程序用户,而不是管理用户)
  • 检查目标服务器上的秘密值
  • 检查在jboss-ejb-client.properties文件中指定属性后没有剩余空格。
  • 启用org.jboss.ejb.client和org.jboss.remoting进行TRACE日志记录,以查看客户端调用的详细消息。

JBoss维护与其他服务器的持久连接,因此当客户端看到此消息时,这意味着没有连接到您尝试调用的ejb的服务器,因此当连接失败时将记录一条消息另一台服务器。