0

您好,我尝试从 jboss 4.2.3 迁移到 jboss 7,但遇到了一些问题。我的问题是,当战争(dts.war)中需要它时,我如何在其他 jar 中指向一个类(dts.jar 中的 ChartGenerateVariables.class)。如何编辑他知道其他模块中所需类的战争(这次是在 jar 文件中)和其他问题是如何解决此错误无法使用 PersistenceUnitInfo.getNewTempClassLoader 加载实体类“com.recglobal.dts.model.views.PlanSalesValue”( )。关于这个问题,我没有任何线索,因为这次它不是 jar 文件或其他东西,而是它自己的类,只是它是一个 @Entity。也许有些人现在会对此有所了解。

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
4

2 回答 2

1

你有一个简单 的错误:原因:java.lang.ClassNotFoundException: com.recglobal.dts.chart.ChartGenerateVariables from [Module "deployment.dts.ear.dts.war:main" from Service Module Loader]

这意味着你的类路径中没有这个类。

在 ear 包中,你有 war、ejb 和 alco clientjar。但是在 JEE6 中有一个很好的做法是将所有 jar 文件保存到 lib 目录中。所以 lib dir 中的所有 jar 对于其他包 war 、 ejb .. 都是全局可见的。

例如我们从war包中删除arr jar依赖,因为我们有多个war,所以我们的项目可能非常繁重。我们将所有 jar 依赖项复制到 lib ear 文件夹中。

在 Maven 中,您只需简单地添加:

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

并在你的耳朵里设置了 skinnywar

于 2013-02-27T21:58:37.883 回答
0

JBoss 7 有一个新的模块系统,因此默认情况下模块不再可见,这很好,因为现在您可以显式控制依赖关系。您所要做的就是将依赖项添加到您的清单文件中。

https://access.redhat.com/site/documentation/en-US/JBoss_Enterprise_Application_Platform/6/html/Development_Guide/Add_an_Explicit_Module_Dependency_to_a_Deployment1.html

于 2013-09-20T20:57:09.777 回答