连接器执行框架运行时出现异常

5
我正在尝试运行connectorZJCA 1.6执行器实现,
为此,我从GitHub下载了Zip文件并尝试执行客户端,
(工作管理器:java.util.concurrent.Executor的JCA实现)
我能够在Eclipse中运行该应用程序(解决了一些依赖问题之后),
jsp页面加载正常,链接“Execute 5 blocking tasks”有效,
但是当我点击特定链接时,会出现以下异常:
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相关的任何配置或资源文件?
我该如何解决这个问题?

1个回答

0

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

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

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

连接池的JNDI名称可以自由选择,但第三步的JNDI名称必须与@Resource注释(= jca/workmanager)给出的名称相同。

如何执行上述步骤取决于您的应用服务器。

请注意,当前ConnectionFactory类中的@Size注释存在错误。要修复此问题,请将其注释掉。


我能够在我的服务器上部署JCA模块(RAR),但当我尝试执行客户端时,它会出现相同的异常(java.lang.NullPointerException at WorkExecutorFactory instance of ThreadsResource class), 请问您能否解释一下如何使用JBoss EAP 6.1在连接器中部署和运行工作管理器? - Chandra Sekhar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接