下面是我的远程配置,当我进行远程处理时一切正常。问题是在某个时刻,有太多的频道打开,因此其他远程调用失败了。
为解决此问题,我尝试在finally语句中关闭上下文并解决此问题:
INFO [org.jboss.ejb.client.remoting]
(Remoting "config-based-ejb-client-endpoint" task-9)
EJBCLIENT000016:
Channel Channel ID c50b300b (outbound) of Remoting connection
29298b25 host/127.0.0.1:8080 can no longer process messages
...failed with exception -:
java.lang.IllegalStateException:
EJBCLIENT000027: No EJBReceiver available for node name
String info = "remote.connection.default";
props.put(info + ".host", StringUtils.substringBefore(url, ":"));
props.put(info + ".port", StringUtils.substringAfter(url, ":"));
props.put(info + ".username", "username");
props.put(info + ".password", "password");
props.put(info + ".connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS", "true");
props.put(info + ".connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT", "false");
props.put("remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED", "false");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
props.put("org.jboss.ejb.client.scoped.context", "true");
InitialContext ctx = new InitialContext(props);
我该如何解决这个问题?我错过了一处房产吗?如何在没有此问题的情况下关闭ejb上下文?
谢谢
答案 0 :(得分:0)
在静态Map的帮助下,我能够在以后关闭Context。
答案 1 :(得分:0)
有一种静态方法
EJBClientContext.getCurrent().close();