【问题标题】:Propagate Java EE context Websphere传播 Java EE 上下文 Websphere
【发布时间】:2015-05-22 02:40:50
【问题描述】:

我正在开发在 Websphere 8.5 上运行的基于 Jersey 的 JAX-RS2 应用程序。我正在使用异步功能来生成一个新线程。问题是新线程没有获得 jndi 查找所需的 Java EE 上下文。我得到的错误是:

无法完成对 java:comp/env 名称的 JNDI 操作,因为 当前线程未与 Java Enterprise Edition 关联 应用程序组件。当 JNDI 客户端 在服务器的线程上不会使用 java:comp/env 名称 申请请求。确保 Java EE 应用程序没有运行 静态代码块内或在 java:comp/env 名称上的 JNDI 操作 该应用程序创建的线程。这样的代码不一定 在服务器应用程序请求的线程上运行,因此不是 受 java:comp/env 名称上的 JNDI 操作支持。

Java EE 7 中的 ManagedExecutorService 功能可以在 websphere 中进行配置。我无法使用它,因为 Websphere 8.5 仅支持 Java EE 6。我无法提前进行查找,因为其中包含需要 Java EE 上下文才能工作的第三方 jar。

我想将 Java EE 上下文传播到新生成的线程。如果可能,请提出建议。

【问题讨论】:

  • 不可能。此外,这个词是 spawn(和 spawned),而不是 span 和 spanned(除非你说的是一座桥,我听说在 Moosejaw 外面有一座)。
  • 更新帖子。谢谢
  • 我不知道你的项目时间表是什么,但也许你现在可以考虑WebSphere Liberty Beta。它支持 JAX-RS 2.0,因此您不需要外部 Jersey 并通过 concurrent-1.0 功能支持 ManagedExecutorService。
  • 对于完整的 WebSphere 8.5.5,您可以考虑使用带有异步调用的会话 EJB,而不是生成新线程。见Configuring EJB 3.1 session bean methods to be asynchronous
  • 感谢 Gas 的建议。我可以通过在 Websphere App Server 中配置一个工作管理器来实现这一点。

标签: java jakarta-ee websphere-8


【解决方案1】:

可以通过在 WebSphere Application Server 中创建工作管理器来将任务提交到具有 J2EE 上下文的新线程。对于 WAS 8 及更高版本,完整配置文件中可用的 WorkManager 现在也是 ExecutorService。具体步骤如下:

  1. 在 WAS 管理控制台上转到 Resources -->Asynchronous Beans--> Work manager 并创建一个 jndi 名称为 wm/myWM 的新工作管理器。
  2. 在 java 代码中为工作管理器执行 jndi 查找。

    ExecutorService execService = (ExecutorService) initialContext.lookup("wm/myWM");

  3. 将任务提交给Executor Service。

    execService.submit(new AsyncJob(inputData, asyncResponse));

在 Websphere Liberty 配置文件中,可以将其配置为 managedExecutorService。 server.xml 中需要添加以下内容

 <feature>concurrent-1.0</feature> 

<managedExecutorService jndiName="wm/myWM">
    <contextService>
        <jeeMetadataContext/>
        <classloaderContext/>
        <securityContext/>
    </contextService>
</managedExecutorService>

更多详细信息在此链接的 pdf 中:ManagedService WAS 8.5

【讨论】:

    猜你喜欢
    • 2018-08-20
    • 2015-02-11
    • 2013-08-07
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 2013-11-25
    • 2011-08-05
    相关资源
    最近更新 更多