我将rar文件放在7的jboss的部署文件夹中,以部署rar文件。稍后部署我的war文件。

根据定义,该连接器绑定在standalone.xml中的JNDI位置。

部署后,默认情况下将执行createConnectionFactory(ConnectionManager cm)。

我在类加载器的帮助下对此方法做了一些整理


ClassLoader contextClassLoader = Thread.currentThread()。getContextClassLoader();


当我尝试使用ejb访问适配器时,再次执行createConnectionFactory(ConnectionManager cm)方法

问题最初是在部署contextClassLoader时为null。后来从ejb调用时,它具有一个值。实际上,我的客房整理失败了。

题 :


createConnectionFactory(ConnectionManager cm)在部署时执行=>这是正确的行为吗?
如何在部署时将ironJacamar / jboss配置为不执行此方法?


其他信息:Jboss As7,NetBeans 7,Jdk1.7

编辑:
以上行为是正确的。我使用的适配器要求在部署时使用的类加载器必须与在运行时使用的类加载器相同。默认情况下,它使用Thread.currentThread()。getContextClassLoader()。我将其更改为使用ClassLoader cl = MyManagedConnectionFactory.class.getClassLoader();

最佳答案

createConnectionFactory(ConnectionManager cm)在部署时执行=>这是正确的行为吗?


如果您有一个ConnectionFactory定义,那么我希望看到该方法被调用,因为该容器在JNDI名称空间中创建并绑定了一个ConnectionFactory定义-您通过ConnectionManager进行调用的事实表明,该方法正在托管服务器中执行场景。

JCA规范的第六章详细描述了资源适配器的这一领域,因此我认为应该有一个明确的答案。编辑:第十七章也可能是相关的。

关于java - 如何管理JCA ManagedConnectionFactory的生命周期?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6955263/

10-10 17:05