对远程EJB方法(同步)的RESTFul服务调用在JBOSS 6.4中以异步方式运行

时间:2017-09-07 09:42:22

标签: java rest java-ee jboss

我们实现了Restful服务,该服务又调用了远程EJB方法,问题出在EJB TXN完成之前或运行时,restful服务会返回控件。

这里Caller(Restful service)和Invoked EJB方法执行并行运行。并且EJB提交正确,在提交中没有问题。 我们对EJB方法的Restful服务调用就像对该EJB的异步调用一样。简而言之 - > Restful服务调用EJB,不等到EJB返回,返回控件并结束,同时EJB也独立运行并提交。

我们的EJB只是同步的,甚至Restful服务也没有任何明确的和Asynch注释。

我们需要Restful服务等待EJB返回它的响应。

相同的方案与我们在weblogic服务器中的预期相同。但是在JBOSS中,每次都会出现上述问题。

1 个答案:

答案 0 :(得分:0)

现在我发现问题在于Standalone.xml中的以下配置,

<remote connector-ref="remoting-connector" thread-pool-name="default">
             <channel-creation-options>
  <option name="WORKER_READ_THREADS" value="2" type="xnio"/>
  <option name="WORKER_WRITE_THREADS" value="2" type="xnio"/>
  <option name="MAX_INBOUND_MESSAGES" value="150" type="remoting"/>
   <option name="MAX_OUTBOUND_MESSAGES" value="150" type="remoting"/>
   </channel-creation-options>
</remote>
            <thread-pools>
                <thread-pool name="default">
                    <max-threads count="150"/>
                    <keepalive-time time="200" unit="minutes"/>
                </thread-pool>
            </thread-pools>
             <in-vm-remote-interface-invocation pass-by-value="false"/>

当我增加最大线程数和保持时间时,有时它没有任何问题。但有时我仍然会得到上述错误。如何在standalone.xml

中确定上述配置的适当值