2012-07-25 4 views
0

안녕하세요. jboss 4.2.3에서 jboss 7로 마이그레이션하려고합니다. 일부 문제가 있습니다. 내 질문은 어떻게 다른 항아리 (dts.jar의 ChartGenerateVariables.class)에서 수업을 가리킬 수있을 때, 그것이 전쟁 (dts.war)에 필요할 때입니다. 그가 다른 모듈 (이 시간은 jar 파일)과 다른 질문에서이 클래스가 어떻게 엔티티 클래스 'com.recglobal.dts.model.views.PlanSalesValue'를 PersistenceUnitInfo.getNewTempClassLoader). 이 문제에 관해서는 이번에는 jar 파일이 아닌 다른 클래스가 아니라 단지 @Entity라는 단서를 가지고 있지 않습니다. 일부는 이제 그것에 대해 뭔가를 할 것입니다.JBoss AS 7이 동일한 귀에서 다른 모듈의 클래스에 대한 참조

12:19:26,839 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.deployment.subunit."dts.ear"."dts.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.subunit."dts.ear"."dts.war".INSTALL: Failed to process phase INSTALL of subdeployment "dts.war" of deployment "dts.ear" 

    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121) [jboss-as-server-7.0.2.Final.jar:7.0.2.Final] 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824) [jboss-msc-1.0.1.GA.jar:1.0.1.GA] 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759) [jboss-msc-1.0.1.GA.jar:1.0.1.GA] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_15] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_15] 
    at java.lang.Thread.run(Thread.java:619) [:1.6.0_15] 

***Caused by: java.lang.RuntimeException: Error getting reflective information for class com.recglobal.dts.chart.SalesGoalChartServlet*** 
    at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:70) [jboss-as-server-7.0.2.Final.jar:7.0.2.Final] 
    at org.jboss.as.ee.component.EEModuleClassDescription$DefaultConfigurator.configure(EEModuleClassDescription.java:176) 
    at org.jboss.as.ee.component.deployers.EEClassConfigurationProcessor$1.compute(EEClassConfigurationProcessor.java:147) 
    at org.jboss.as.ee.component.deployers.EEClassConfigurationProcessor$1.compute(EEClassConfigurationProcessor.java:122) 
    at org.jboss.as.ee.component.LazyValue.get(LazyValue.java:40) 
    at org.jboss.as.ee.component.EEApplicationDescription.getClassConfiguration(EEApplicationDescription.java:183) 
    at org.jboss.as.ee.component.ComponentDescription.createConfiguration(ComponentDescription.java:153) 
    at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:70) 
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115) [jboss-as-server-7.0.2.Final.jar:7.0.2.Final] 

    ... 5 more 

**Caused by: java.lang.NoClassDefFoundError: com/recglobal/dts/chart/ChartGenerateVariables** 
    at java.lang.Class.getDeclaredMethods0(Native Method) [:1.6.0_15] 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) [:1.6.0_15] 
    at java.lang.Class.getDeclaredMethods(Class.java:1791) [:1.6.0_15] 
    at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:65) [jboss-as-server-7.0.2.Final.jar:7.0.2.Final] 
    at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66) [jboss-as-server-7.0.2.Final.jar:7.0.2.Final] 

    ... 13 more 

**Caused by: java.lang.ClassNotFoundException: com.recglobal.dts.chart.ChartGenerateVariables from [Module "deployment.dts.ear.dts.war:main" from Service Module Loader]** 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191) [jboss-modules.jar:1.0.2.GA] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) [jboss-modules.jar:1.0.2.GA] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) [jboss-modules.jar:1.0.2.GA] 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) [jboss-modules.jar:1.0.2.GA] 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) [:1.6.0_15] 
    ... 18 more 


12:19:31,436 INFO [org.jboss.jpa] (MSC service thread 1-3) starting Persistence Unit Service 'dts.ear/dts.jar#dts' 

12:19:34,804 INFO [org.hibernate.annotations.common.Version] (MSC service thread 1-3) HCANN000001: Hibernate Commons Annotations {4.0.0.CR2} 

12:19:34,868 INFO [org.hibernate.Version] (MSC service thread 1-3) HHH00412:Hibernate Core {4.0.0.CR2} 

12:19:34,991 INFO [org.hibernate.cfg.Environment] (MSC service thread 1-3) HHH00206:hibernate.properties not found 

12:19:34,992 INFO [org.hibernate.cfg.Environment] (MSC service thread 1-3) HHH00021:Bytecode provider name : javassist 

12:19:35,185 INFO [org.hibernate.ejb.Ejb3Configuration] (MSC service thread 1-3) HHH00204:Processing PersistenceUnitInfo [ 

    name: dts 

    ...] 

12:19:35,250 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC00001: Failed to start service jboss.persistenceunit."dts.ear/dts.jar#dts": org.jboss.msc.service.StartException in service jboss.persistenceunit."dts.ear/dts.jar#dts": Failed to start service 

    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1780) [jboss-msc-1.0.1.GA.jar:1.0.1.GA] 

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_15] 

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_15] 

    at java.lang.Thread.run(Thread.java:619) [:1.6.0_15] 

**Caused by: java.lang.RuntimeException: error trying to scan <jar-file>: vfs:/D:/liferay-portal-6.1.0-ce-ga1/jboss-7.0.2/bin/content/dts.ear/dts.jar/** 

    at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:849) 

    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:591) 

    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:72) 

    at org.jboss.as.jpa.service.PersistenceUnitService.createContainerEntityManagerFactory(PersistenceUnitService.java:143) 

    at org.jboss.as.jpa.service.PersistenceUnitService.start(PersistenceUnitService.java:77) 

    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824) [jboss-msc-1.0.1.GA.jar:1.0.1.GA] 

    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759) [jboss-msc-1.0.1.GA.jar:1.0.1.GA] 

    ... 3 more 

**Caused by: java.lang.RuntimeException: could not load entity class 'com.recglobal.dts.model.views.PlanSalesValue' with PersistenceUnitInfo.getNewTempClassLoader()** 

    at org.jboss.as.jpa.hibernate4.HibernateAnnotationScanner.getClassesInJar(HibernateAnnotationScanner.java:152) 

    at org.hibernate.ejb.Ejb3Configuration.addScannedEntries(Ejb3Configuration.java:479) 

    at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:846) 

    ... 9 more 

**Caused by: java.lang.ClassNotFoundException: com.recglobal.dts.model.views.PlanSalesValue from [Module "deployment.dts.ear.dts.jar:main" from Service Module Loader]** 

    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191) 

    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) 

    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) 

    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) 

    at org.jboss.as.jpa.hibernate4.HibernateAnnotationScanner.getClassesInJar(HibernateAnnotationScanner.java:148) 

    ... 11 more 

답변

1

당신은 간단한 오류를 가지고있다 : java.lang.ClassNotFoundException가 : 가에 의한 [모듈에서 com.recglobal.dts.chart.ChartGenerateVariables "deployment.dts.ear.dts.war : 주"에서 서비스 모듈 로더]

즉, 클래스 패스에이 클래스가 없다는 의미입니다.

귀 포장에는 전쟁, ejb 및 알콜 client 항아리가 있습니다. 그러나 JEE6에는 lib 디렉토리에 모든 jar를 보관하는 것이 좋습니다. lib 디렉토리에있는 모든 항아리는 다른 패키지 전쟁에서 전역 적으로 볼 수 있습니다.

예를 들어 우리는 여러 전쟁이있어서 우리 프로젝트가 매우 무거울 수 있으므로 전쟁 패키지에서 arr jar 종속성을 삭제합니다. 모든 jar 의존성을 lib ear 폴더에 복사합니다. 받는다는에서

당신이 단순한 추가 :

<artifactId>maven-war-plugin</artifactId> 
     <configuration> 
      <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes> 

과 귀에는

skinnywar 설정 POM