如何创建JBoss7.1.1.Final多个持久化单元名称(How to create multip

2019-08-08 06:43发布

我升级JBoss服务器4.1.2到JBoss 7.1.1因此让例外是

15:51:24,655 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.deployment.unit."mobeeadmin.war".DEPENDENCIES: org.jboss.msc.service.StartException in service jboss.deployment.unit."mobeeadmin.war".DEPENDENCIES: Failed to process phase DEPENDENCIES of deployment "mobeeadmin.war"
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_37]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_37]
    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_37]
Caused by: java.lang.IllegalArgumentException: JBAS011470: Persistence unitName was not specified and there are 3 persistence unit definitions in application deployment "mobeeadmin.war".  Either change the application to have only one persistence unit definition or specify the unitName for each reference to a persistence unit.
    at org.jboss.as.jpa.container.PersistenceUnitSearch.resolvePersistenceUnitSupplier(PersistenceUnitSearch.java:69)
    at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getPersistenceUnit(JPAAnnotationParseProcessor.java:284)
    at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getBindingSource(JPAAnnotationParseProcessor.java:220)
    at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processField(JPAAnnotationParseProcessor.java:151)
    at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processPersistenceAnnotations(JPAAnnotationParseProcessor.java:118)
    at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.deploy(JPAAnnotationParseProcessor.java:90)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    ... 5 more

应用环境seam2.1.2使用JPA,RichFaces和JSF集成。 我如何能在JBoss的7.1.1声明多个持久化单元。

我的components.xml

<core:init debug="false" jndi-pattern="@jndiPattern@" transaction-management-   enabled="true"/>
<core:manager concurrent-request-timeout="2000"
    conversation-id-parameter="cid" conversation-timeout="120000"

<web:hot-deploy-filter url-pattern="/*.mobee" />


<persistence:entity-manager-factory
    installed="@seamBootstrapsPu@" name="entityManagerFactory"
    persistence-unit-name="pu1" />
<persistence:managed-persistence-context 
    auto-create="true" entity-manager-factory="@seamEmfRef@" name="entityManager"
    persistence-unit-jndi-name="@puJndiName@" />

 <persistence:entity-manager-factory name="empEntityManagerFactory" 
                  persistence-unit-name="pu2"/>

    <persistence:managed-persistence-context name="empEntityManager"
    auto-create="true" entity-manager-factory="#{empEntityManagerFactory}"
    persistence-unit-jndi-name="java:/pu2Database"/>




<async:quartz-dispatcher />


<security:identity authenticate-method="#{authenticator.authenticate}" />


<web:rewrite-filter view-mapping="*.mobee" />

<event type="org.jboss.seam.security.notLoggedIn">
    <action execute="#{redirect.captureCurrentView}" />
</event>

<event type="org.jboss.seam.security.loginSuccessful">
    <action execute="#{redirect.returnToCapturedView}" />
</event>
<mail:mail-session host="localhost" port="25" />

persistence.xml中

<persistence-unit name="pu1" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/sample1</jta-data-source>

        <mapping-file>META-INF/orm.xml</mapping-file>


        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties>


            <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.jdbc.batch_size" value="20" />
            <property name="hibernate.cache.use_second_level_cache"
                value="false" />
            <property name="hibernate.show_sql" value="false" />


            <property name="hibernate.transaction.manager_lookup_class"
                value="@transactionManagerLookupClass@" />

          <property name="jboss.entity.manager.factory.jndi.name" value="@puJndiName@ "/>
        </properties>
    </persistence-unit>

    <persistence-unit name="pu2" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/sample2</jta-data-source>

        <mapping-file>META-INF/emp2Orm.xml</mapping-file>


        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties>


            <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.jdbc.batch_size" value="20" />
            <property name="hibernate.cache.use_second_level_cache"
                value="false" />
            <property name="hibernate.show_sql" value="false" />


                <property name="hibernate.transaction.manager_lookup_class"
                value="org.hibernate.transaction.JBossTransactionManagerLookup" />


               <property name="jboss.entity.manager.factory.jndi.name" value="java:/pu2Database" />



        </properties>
    </persistence-unit>

Answer 1:

我在做同样的。 我在我的Spring应用程序移动到JBoss 8(WildFly)。 我得到了同样的错误。 google搜索几个小时后,我终于找到了解决办法。

转到\\独立\配置。

打开standalone.xml。 和寻找

子系统的xmlns =“瓮:JBoss的:域:JPA:1.1

注释该标签,并重新启动服务器。 现在应该工作。



Answer 2:

我会武功比实体管理器是由JBoss的绕过Seam的注射mechanime注入。

它似乎变得缝2在JBoss 7个工作,你需要做出一些改变

我找到另外一个似乎问了JBoss不在乎JPA

另一种解决方案将是升级到接缝3。



文章来源: How to create multiple persistence unit Names in JBoss7.1.1.Final