运行connectorz Executor框架时出现异常

时间:2013-12-20 07:02:03

标签: java frameworks jboss6.x connector jca

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

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

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 :(得分:0)

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

  1. 将JCA模块部署到您的应用程序服务器
  2. 为以前部署的JCA模块创建连接池
  3. 为JCA模块创建JNDI条目,指定要使用的连接池。
  4. 在你的情况下,我认为你没有做第2步和第3步。

    可以选择连接池的JNDI-Name,但第三步的JNDI-Name必须与@ Resource-Annotation(= jca / workmanager)给出的JNDI-Name相同。

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

    请注意,目前在RAR模块的ConnectionFactory类中存在包含@ Size-Annotation的错误。对于修复此问题,请将其注释掉。