【问题标题】:Wildfly: disable persistence unit lookupWildfly:禁用持久性单元查找
【发布时间】:2015-07-13 22:23:06
【问题描述】:

在工件部署的最开始,Wildfly 验证persistence.xml 中描述的所有持久性单元。负责类之一是来自wildfly-jpa 库的org.jboss.as.jpa.processor.PersistenceUnitServiceHandler

主要问题:是否可以以某种方式禁用此验证?或者只是将持久性单元标记为忽略?

详细说明根本原因:

我们将构建无环境的工件。所以persistence.xml里面的配置一开始就会被java代码覆盖。默认配置是虚拟的,如下所示:

<persistence-unit name="cassandra_unit" transaction-type="RESOURCE_LOCAL">
    <provider>com.impetus.kundera.KunderaPersistence</provider>
    <class>sample.model.Manager</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <properties>
        <property name="kundera.nodes" value="localhost"/>
        <property name="kundera.port" value="9165"/>
        <property name="kundera.username" value="test"/>
        <property name="kundera.password" value="test"/>
        <property name="kundera.keyspace" value="keyspace"/>
        <property name="kundera.dialect" value="cassandra"/>
        <property name="kundera.client.lookup.class" value="com.impetus.kundera.client.cassandra.dsdriver.DSClientFactory"/>
    </properties>
</persistence-unit>

但wildfly 会验证持久性单元并调用KunderaPersistence.createContainerEntityManagerFactory。 Kundera 轮流检查与 localhost:9165 的连接并失败。所以部署也失败了。

任何解决方法都是可以接受的。

【问题讨论】:

    标签: jpa deployment persistence wildfly kundera


    【解决方案1】:

    希望我找到了解决方案。 需要添加

    <property name="jboss.as.jpa.managed" value="false"/>
    

    进入persistence.xml。 Wildfly 将在启动时忽略持久性单元。

    并且可以通过手动初始化它

    Persistence.createEntityManagerFactory("cassandra_unit", kunderaProperties)
    

    并应用所有必需的覆盖逻辑。

    希望这会挽救某人的生命)

    wildfly-jpa jar 中的org.jboss.as.jpa.config.Configuration 类中播种更多特定于wildfly 的属性

    【讨论】:

      猜你喜欢
      • 2016-05-17
      • 1970-01-01
      • 2020-03-17
      • 2016-09-24
      • 2016-03-18
      • 1970-01-01
      • 2017-11-01
      • 2016-05-29
      • 2011-05-25
      相关资源
      最近更新 更多