如何在JBoss7.1.1.Final中创建多个持久性单元名称 [英] How to create multiple persistence unit Names in JBoss7.1.1.Final

查看:136
本文介绍了如何在JBoss7.1.1.Final中创建多个持久性单元名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将jboss server 4.1.2升级到jboss 7.1.1,因此得到异常

  15:51:24,655错误[org.jboss.msc.service.fail](MSC服务线程1-4)MSC00001:无法启动服务jboss.deployment.unit mobeeadmin.war .DEPENDENCIES:org.jboss.msc.service.StartException在服务jboss.deployment.unit mobeeadmin.war .DEPENDENCIES:无法处理在org.jboss.as.server.deployment.DeploymentUnitPhaseService.start部署 mobeeadmin.war 
相依赖(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]
在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]
。在java.lang.Thread.run(Thread.java:662)[rt.jar中:1.6.0_37]
导致:java.lang.IllegalArgumentException:JBAS011470:未指定持久性单元名,应用程序部署中有3个持久性单元定义mobeeadmin.war。将应用程序更改为只有一个持久性单元定义,或者为持久性单元的每个引用指定unitName。在org.jboss.as.jpa.container.PersistenceUnitSearch.resolvePersistenceUnitSupplier(PersistenceUnitSearch.java:69)

在org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getPersistenceUnit(JPAAnnotationParseProcessor.java:284)在org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getBindingSource(JPAAnnotationParseProcessor.java:220)

在org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processField(JPAAnnotationParseProcessor.java:151)
在org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processPersistenceAnnotations(JPAAnnotationParseProcessor.java:118)
在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与jp集成a,richfaces和jsf。
如何在jboss 7.1.1中声明多个持久化单元。



my components.xml

 < core:init debug =falsejndi-pattern =@ jndiPattern @transaction-management- enabled =true/> 
conversation-id-parameter =cidconversation-timeout =120000



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

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

auto-create =trueentity-manager-factory =#{empEntityManagerFactory}
persistence - 单元-JNDI名称= 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 =localhostport =25/>

persistence.xml

 < persistence-unit name =pu1transaction-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>
<属性>


< property name =hibernate.hbm2ddl.autovalue =update/>
< property name =hibernate.jdbc.batch_sizevalue =20/>
< property name =hibernate.cache.use_second_level_cache
value =false/>
< property name =hibernate.show_sqlvalue =false/>


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

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

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

<映射文件> META-INF / emp2Orm.xml< /映射文件>


< exclude-unlisted-classes> true< / exclude-unlisted-classes>
<属性>


< property name =hibernate.hbm2ddl.autovalue =update/>
< property name =hibernate.jdbc.batch_sizevalue =20/>
< property name =hibernate.cache.use_second_level_cache
value =false/>
< property name =hibernate.show_sqlvalue =false/>


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


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



< / properties>
< / persistence-unit>


解决方案

我也这样做。我正在将我的Spring应用程序迁移到Jboss 8(WildFly)。我得到了同样的错误。 Google搜索了几个小时之后,终于找到了解决方案。



转到\\\\\\\\\\\\\\\\\\\' b

打开standalone.xml。并寻找

子系统xmlns =urn:jboss:domain:jpa:1.1



并重新启动服务器,它应该现在工作


I am upgrading jboss server 4.1.2 to jboss 7.1.1 so getting exception is

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

application environment is seam2.1.2 integrate with jpa ,richfaces and jsf. how can i declare multiple persistence units in jboss 7.1.1.

my 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>

解决方案

I was doing the same. I was moving my spring application to Jboss 8 (WildFly). I got the same error. After googling for few hours, at last I found the solution.

Go to \\standalone\configuration.

Open standalone.xml. and Look for

subsystem xmlns="urn:jboss:domain:jpa:1.1

Comment that tag, and restart the server. It should work now.

这篇关于如何在JBoss7.1.1.Final中创建多个持久性单元名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆