0

次のような状況があります。

私は3つのプロジェクトを持つJavaアプリケーションを持っています:

  • Java プロジェクト
  • EJB モジュール
  • Web プロジェクト

ネット Bean を使用して、3 つのプロジェクトをビルドし、サーバーにアップロードします。Java プロジェクトは正常にデプロイされますが、Java プロジェクトに依存する EJB モジュールは次のエラーを出します:

12:35:00,811 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC00001: Failed to start service jboss.deployment.unit."MyApp.jar".POST_MODULE: org.jboss.msc.service$
        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.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.6.0_20]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.6.0_20]
        at java.lang.Thread.run(Thread.java:636) [rt.jar:1.6.0_20]


Caused by: java.lang.RuntimeException: Error getting reflective information for class gss.myapp.sessions.CardValidatorBean with ClassLoader ModuleClassLoader for Module "deplo$
        at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:70) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
        at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58)
        at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:85)
        at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:70)
        at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:55)
        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

Caused by: java.lang.NoClassDefFoundError: gss/commons/exceptions/BusinessEntityFindException
        at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.6.0_20]
        at java.lang.Class.privateGetDeclaredFields(Class.java:2308) [rt.jar:1.6.0_20]
        at java.lang.Class.getDeclaredFields(Class.java:1760) [rt.jar:1.6.0_20]
        at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:57) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
        at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
        ... 10 more

Caused by: java.lang.ClassNotFoundException: gss.commons.exceptions.BusinessEntityFindException from [Module "deployment.MyApp.jar:main" from Service Module Loader]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
        ... 15 more
4

2 に答える 2

0

gss.commons.exceptions.BusinessEntityFindException クラスを JBoss に追加する必要があります。

gss/commons/exceptions/BusinessEntityFindException を含む jar に対してYOUR_JAR.jarを呼び出します。

1: JBoss にモジュールを追加する

  • JBoss サーバーを停止します
  • ディレクトリで YOUR_JAR.jar を見つけます
  • JBoss で次のディレクトリを作成します: JBOSS_HOME/modules/org/gss/main
  • YOUR_JAR.jar をこのディレクトリに置きます
  • module.xml というファイルを作成し、以下を追加します。

<

<?xml version="1.0" encoding="UTF-8"?>
 <module xmlns="urn:jboss:module:1.1" name="org.gss">
 <resources>
 <resource-root path="YOUR_JAR.jar"/>
 </resources>
</module>

*

2: プロジェクトから新しいモジュールを呼び出します。

  • Web プロジェクトで、ファイル WEB-INF/jboss-deployment-structure.xml を作成します。
  • 追加:

<

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
      <dependencies>
         <module name="org.gss" meta-inf="export">
            <imports>
               <include path="META-INF" />
            </imports>
         </module>
      </dependencies>
   </deployment>
</jboss-deployment-structure>
  • Jbossサーバーを起動します
于 2012-11-28T00:17:25.267 に答える