java - 运行 connectorz Executor 框架时出现异常

标签 java frameworks jboss6.x connector jca

我正在尝试运行 connectorZ JCA 1.6执行器实现,
为此我下载了Zip from github并尝试执行客户端,
(Work Manager:java.util.concurrent.Executor 的 JCA 实现)

我能够在 Eclipse 中运行该应用程序,(在解决了一些依赖性问题之后)
带有链接“执行 5 个阻塞任务”的 jsp 页面加载正常,
当我点击特定链接时,我得到以下异常:

Caused by: java.lang.NullPointerException
    at org.connectorz.threading.ThreadsResource.overload(ThreadsResource.java:72) [classes:]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_40]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_40]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_40]
    at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_40]

这里的问题是 executorFactory 为 null,我不确定 jndi_name "jca/workmanager"。

@Resource(name="jca/workmanager")
WorkExecutorFactory executorFactory; //NPE at executorFactory(not injecting).


我是否缺少任何与jndi或任何资源文件相关的配置?
我该如何解决这个问题?

最佳答案

从另一个部署的模块访问 JCA 模块需要三个步骤:

  1. 将 JCA 模块部署到您的应用服务器
  2. 为之前部署的 JCA 模块创建连接池
  3. 为指定要使用的连接池的 JCA 模块创建 JNDI 条目。

在您的情况下,我认为您没有执行第 2 步和第 3 步。

Connection-Pool 的 JNDI-Name 可以自由选择,但第三步的 JNDI-Name 必须与@Resource-Annotation (= jca/workmanager) 给定的相同。

如何执行上述步骤取决于您的 ApplicationServer。

请注意,目前 RAR 模块的 ConnectionFactory 类中存在包含 @Size-Annotation 的错误。要解决此问题,只需将其注释掉即可。

关于java - 运行 connectorz Executor 框架时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20698084/

相关文章:

java - 在Python代码中使用JAVA模型类

iphone - 如何在xcode中导入私有(private)框架

IOS动态框架,外部符号成为发布版本的非外部符号

ios - 如何在新的 iOS8 框架目标中链接由 Cocoapods 生成的框架

java - 如何在 JBOSS EAP6.4 的自定义模块后使用 Spring Boot 应用程序使用自定义 module.xml 并进行部署

java - 创建新的类版本

java - .pack() 有什么作用?

java - JBoss 6.4 中类加载的顺序 : Is WEB-INF/classes or modules loaded first?

java - Keycloak 给出无效的重定向 uri 错误

java - 当前推荐的将 byte[] 转换为 JsonNode 并返回的方法