2011-09-16 3 views
1

내 최대 절전 모드 응용 프로그램이 jboss-as-7.0.0.Final에서 성공적으로 실행되었습니다. jboss-as-7.0.1.Final로 이동했습니다. 나는 이러한 오류jboss 7.0.1 hibernate javax.persistence.PersistenceException : EntityManager에 대한 지속성 공급자가 없음

과 같은
<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" 
    xmlns="http://java.sun.com/xml/ns/persistence"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation=" 
    http://java.sun.com/xml/ns/persistence 
    http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
    <persistence-unit name="primary"> 
    <non-jta-data-source>java:jboss/datasources/MySqlDS</non-jta-data-source> 

    <properties> 

    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> 
    <property name="hibernate.ejb.interceptor.session_scoped" value="com.clairvista.liveexpert.common.persistence.BusinessObjectInterceptor"/> 
      </properties> 

내 pom.xml 파일

처럼 이
17:42:42,725 ERROR [com.mycompany.myapp.common.persistence.HibernateUtil] (MSC service thread 1-12) Initial SessionFactory lookup failed.: javax.persistence.PersistenceException: No Persistence provider for EntityManager named primary2 
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69) [hibernate-jpa-2.0-api-1.0.1.Final.jar:1.0.1.Final] 
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) [hibernate-jpa-2.0-api-1.0.1.Final.jar:1.0.1.Final] 
at com.mycompany.myapp.common.persistence.HibernateUtil.<clinit>(HibernateUtil.java:35) [classes:] 
at com.mycompany.myapp.common.businessobjects.ServerSettings.GetServerSettings(ServerSettings.java:84) [classes:] 
at com.mycompany.myapp.common.jms.JMSListenerServletTemplate.init(JMSListenerServletTemplate.java:41) [classes:] 
at com.mycompany.myapp.common.jms.JMSAnywhereServlet.init(JMSAnywhereServlet.java:179) [classes:] 
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1102) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3631) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3844) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) [jboss-as-web-7.0.1.Final.jar:7.0.1.Final] 
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765) 
at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26] 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26] 
at java.lang.Thread.run(Thread.java:680) [:1.6.0_26] 

17:42:42,732 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/myapp]] (MSC service thread 1-12) StandardWrapper.Throwable: java.lang.NoClassDefFoundError: Could not initialize class com.mycompany.myapp.common.persistence.HibernateUtil 
at com.mycompany.myapp.common.businessobjects.ServerSettings.GetServerSettings(ServerSettings.java:92) [classes:] 
at com.mycompany.myapp.common.jms.JMSListenerServletTemplate.init(JMSListenerServletTemplate.java:41) [classes:] 
at com.mycompany.myapp.common.jms.JMSAnywhereServlet.init(JMSAnywhereServlet.java:179) [classes:] 
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1102) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3631) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3844) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) [jboss-as-web-7.0.1.Final.jar:7.0.1.Final] 
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765) 
at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26] 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26] 
at java.lang.Thread.run(Thread.java:680) [:1.6.0_26] 

17:42:42,734 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/myapp]] (MSC service thread 1-12) Servlet /myapp threw load() exception: java.lang.NoClassDefFoundError: Could not initialize class com.mycompany.myapp.common.persistence.HibernateUtil 
at com.mycompany.myapp.common.businessobjects.ServerSettings.GetServerSettings(ServerSettings.java:92) [classes:] 
at com.mycompany.myapp.common.jms.JMSListenerServletTemplate.init(JMSListenerServletTemplate.java:41) [classes:] 
at com.mycompany.myapp.common.jms.JMSAnywhereServlet.init(JMSAnywhereServlet.java:179) [classes:] 
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1102) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3631) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3844) [jbossweb-7.0.1.Final.jar:7.0.1.Final] 
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) [jboss-as-web-7.0.1.Final.jar:7.0.1.Final] 
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765) 
at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26] 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26] 
at java.lang.Thread.run(Thread.java:680) [:1.6.0_26] 

내 persistence.xml을 보이는을 받기 시작 내가 무슨 일이 일어나고 있는지 확실하지 않다

 entityManagerFactory = Persistence.createEntityManagerFactory("primary"); 

처럼 6,는
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>4.0.0.Beta5</version> 
    </dependency> 

    <dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-commons-annotations</artifactId> 
    <version>3.2.0.Final</version> 
    </dependency> 
    <dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>4.0.0.Beta5</version> 
    </dependency> 

    <dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-infinispan</artifactId> 
    <version>4.0.0.Beta5</version> 
    </dependency> 

이러한 오류가 발생합니다 코드가 보인다 -이 응용 프로그램은 jboss-as-7.0.0.Final에서 일하고 있었다. 7.0.1은 응용 프로그램 내에 번들 된 최대 절전 모드 버전을 더 잘 지원한다는 것을 알고 있습니다. 그러나 컨테이너에 번들로 제공되는 최대 절전 모드 버전을 사용하고자 할 때 이것이 내 문제와 어떻게 관련이 있는지 잘 모르겠습니다. 어떤 아이디어?

+0

트리를 확인 서버 컨텍스트, 팩토리가 잘 배치되었는지 확인 – Jorge

+0

트리 컨텍스트를 어떻게 확인할 수 있습니까? – user619804

+0

버전 7.0에서 어떻게 변경 될지 모르겠습니다. 서버를 배포 한 후 버전 4.5에서 수행하는 방법을 알고 있습니다. 예를 들어, http : // localhost : 8280과 같은 경로에서 웹 콘솔에 액세스 할 수 있습니다. jmx-console에'jndi view'를 찾아'listXML' 서비스를 호출하면 알 수있는 jdni 이름이 표시되고 누락 된 것을 찾습니다 – Jorge

답변

0

오류는 말한다 "EntityManager의 이름 primary2에 대한 어떠한 지속성 공급자 없다"

그러나 당신의 persistence.xml 이름 (접미사이없는) "주"단위는 :

<persistence-unit name="primary"> 

이 문제가 될 수 ?

+0

그건 내 부분에서 오타 였어, 우레탄의 이름은 정확하지만 여전히 오류가 나타납니다. – user619804

+0

그러면 이전 pom.xml에서 오류가 어떻게 발생하지만 * 수정 된 데이터 소스 이름과 함께 * 어떻게됩니까? –

1

hibernate- 종속성은 JBoss에 이미 있으므로 pom.xml에는 포함되어 있지 않습니다. JBoss 7 라이브러리가 으로 설정되고으로 설정하면됩니다. 클래스 로더가 사용하는 하나 알고하지 않도록

<dependency> 
    <groupId>org.jboss.spec</groupId> 
    <artifactId>jboss-javaee-6.0</artifactId> 
    <version>2.0.0.Final</version> 
    <type>pom</type> 
    <scope>provided</scope> 
</dependency> 

NoClassDefFoundError는 일반적으로, 클래스 또는 인터페이스 클래스 패스에 두 번있는에 관한 것이다.

+0

[오류] /Users/me/Documents/hg/myapp-maven/src/main/java/com/mycompany/myapp/common/businessobjects/Product.java:[18,25] org.hibernate.type 패키지는 그렇지 않습니다. exist – user619804

+0

필자가 제안한 JBoss 7 라이브러리를 포함 시켰고 pom.xml에서 최대 절전 모드 의존성을 주석 처리했습니다. 메이븐 빌드 중에 이러한 유형의 오류가 많이 발생합니다. – user619804

0
가 7

예를 들어, 첫 번째 의존성, 당신은 작성해야 제이보스에 포함되어과 같이 provided에 최대 절전 종속성의 모든 <scope>의 설정해야

:

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>4.0.0.Beta5</version> 
    <scope>provided</scope> 
</dependency> 
관련 문제