3

JBoss AS 7 で作業中の war ファイルをデプロイすると、次の例外が発生しました

11:59:11,090 WARN [org.jboss.as.server.deployment] (MSC サービススレッド 1-6) JBAS015893: 無効なクラス名 'com.sun.jersey.server.impl.model.parameter.multivalued.StringReaderProviders$ が見つかりましたサービスタイプ「com.sun.jersey.spi.StringReaderProvider」の「StringConstructor」
11:59:11,091 WARN [org.jboss.as.server.deployment] (MSC サービススレッド 1-6) JBAS015893: 無効なクラス名 'com.sun.jersey.server.impl.model.parameter.multivalued.StringReaderProviders$ が見つかりましたサービスタイプ「com.sun.jersey.spi.StringReaderProvider」の「DateProvider」
11:59:11,092 WARN [org.jboss.as.server.deployment] (MSC サービススレッド 1-6) JBAS015893: 無効なクラス名 'com.sun.jersey.server.impl.model.parameter.multivalued.JAXBStringReaderProviders$ が見つかりましたサービスタイプ「com.sun.jersey.spi.StringReaderProvider」の「RootElementProvider」
11:59:11,923 エラー [org.jboss.msc.service.fail] (MSC サービス スレッド 1-5) MSC00001: サービス jboss.deployment.unit."myimpl.war".POST_MODULE: org.jboss.msc の開始に失敗しましたサービス jboss.deployment.unit."myimpl.war".POST_MODULE の .service.StartException: デプロイメント "myimpl.war" のフェーズ POST_MODULE の処理に失敗しました
    org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] で
    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] で
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_37] で
    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.NoClassDefFoundError: org/hibernate/exception/ConstraintViolationException
    java.lang.Class.getDeclaredConstructors0 (ネイティブ メソッド) で [rt.jar:1.6.0_37]
    java.lang.Class.privateGetDeclaredConstructors (Class.java:2389) [rt.jar:1.6.0_37] で
    java.lang.Class.getConstructor0 (Class.java:2699) [rt.jar:1.6.0_37] で
    java.lang.Class.getConstructor (Class.java:1657) [rt.jar:1.6.0_37] で
    org.jboss.as.web.deployment.jsf.JsfManagedBeanProcessor.deploy(JsfManagedBeanProcessor.java:108) で
    org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] で
    ... 5 つ以上
原因: java.lang.ClassNotFoundException: org.hibernate.exception.ConstraintViolationException from [Module "deployment.myimpl.war:main" from Service Module Loader]
    org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) [jboss-modules.jar:1.1.1.GA] で
    org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.1.1.GA] で
    org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.1.1.GA] で
    org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423) [jboss-modules.jar:1.1.1.GA] で
    org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.1.1.GA] で
    org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.1.1.GA] で
    ... 11以上

11:59:11,938 INFO [org.jboss.as] (MSC サービス スレッド 1-7) JBAS015951: http://127.0.0.1:9990 でリッスンしている管理コンソール
11:59:11,938 エラー [org.jboss.as] (MSC サービス スレッド 1-7) JBAS015875: JBoss AS 7.1.1.Final "Brontes" が 72380 ミリ秒で開始されました (エラーあり) - 1548 サービスのうち 1402 サービスが開始されました (1 サービスが失敗しました)または依存関係の欠落、136 のサービスがパッシブまたはオンデマンド)
11:59:11,939 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: デプロイ "myimpl.war" のデプロイがロールバックされ、失敗メッセージ {"JBAS014671: 失敗したサービス" => {"jboss .deployment.unit.\"myimpl.war\".POST_MODULE" => "org.jboss.msc.service.StartException サービス jboss.deployment.unit.\"myimpl.war\".POST_MODULE: フェーズ POST_MODULE の処理に失敗しました展開 \"myimpl.war\""}}
11:59:12,036 INFO [org.jboss.as.server.deployment] (MSC サービス スレッド 1-5) JBAS015877: デプロイメント myimpl.war を 95 ミリ秒で停止しました
11:59:12,038 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: サービスステータスレポート
JBAS014777: 開始に失敗したサービス: サービス jboss.deployment.unit."myimpl.war".POST_MODULE: org.jboss.msc.service.StartException サービス jboss.deployment.unit."myimpl.war".POST_MODULE: に失敗しましたデプロイメント「myimpl.war」のプロセスフェーズ POST_MODULE

11:59:12,040 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: 複合操作が失敗し、ロールバックされました。失敗した手順:" => {"操作手順- 2" => {"JBAS014671: 失敗したサービス" => {"jboss.deployment.unit.\"myimpl.war\".POST_MODULE" => "org.jboss.msc.service.StartException サービス jboss.deployment.unit で.\"myimpl.war\".POST_MODULE: デプロイメント \"myimpl.war\" のフェーズ POST_MODULE の処理に失敗しました"}}}}

JBoss AS 7 はデフォルトで、起動時に hibernate jar をクラスパスに追加することをサポートしていると思います (hibernate モジュールは JBoss AS7 で既に利用可能であるため)。hibernate-core-4.0.1.Final.jar (「modules\org\hibernate\main」フォルダー構造の下) の下にConstraintViolationExceptionクラスが見つかりました。では、なぜこのNoClassDefFoundErrorが発生するのでしょうか?

依存関係の解決にmavenを使用していないことに注意してください。依存関係を解決するために、手動で jar ファイルを myimpl.war\WEB-INF\lib に配置します

とにかく、次のような新しい例外が発生した後、WEB-INF\lib ディレクトリに休止状態の jar (hibernate3.jar) を追加しました。

12:51:19,146 エラー [org.jboss.msc.service.fail] (MSC サービス スレッド 1-6) MSC00001: サービス jboss.deployment.unit."myimpl.war".POST_MODULE: org.jboss.msc の開始に失敗しましたサービス jboss.deployment.unit."myimpl.war".POST_MODULE の .service.StartException: デプロイメント "myimpl.war" のフェーズ POST_MODULE の処理に失敗しました
    org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] で
    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] で
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_37] で
    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] で
原因: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011232: 1 つの JAX-RS アプリケーション クラスのみが許可されています。com.sun.jersey.api.core.WebAppResourceConfig com.sun.jersey.api.core.ResourceConfig com.sun.jersey.api.core.ClassNamesResourceConfig com.sun.jersey.api.core.ScanningResourceConfig com.sun.jersey. api.core.ClasspathResourceConfig com.sun.jersey.api.core.DefaultResourceConfig com.sun.jersey.api.core.PackagesResourceConfig com.sun.jersey.server.impl.application.DeferredResourceConfig com.sun.jersey.api.core.アプリケーションアダプター
    org.jboss.as.jaxrs.deployment.JaxrsScanningProcessor.scan(JaxrsScanningProcessor.java:209) で
    org.jboss.as.jaxrs.deployment.JaxrsScanningProcessor.deploy(JaxrsScanningProcessor.java:105) で
    org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] で
    ... 5 つ以上

この問題を解決する方法を簡単に教えてください

4

4 に答える 4

1

jboss デプロイメント構造の xml ファイルに hibernate jar の依存関係を追加する必要があります。それを試して、結果を教えてください。

于 2013-10-01T11:36:08.687 に答える
1

jboss が提供する hibernate モジュールに明示的な依存関係を追加することについて、sankar に同意します。依存関係を追加する他の方法は、META-INF の下の MANIFEST ファイルを使用することです。

以下のリンクは、Jboss ClassLoading と依存関係に関する優れた記事です。それが役に立てば幸い。

http://www.mastertheboss.com/jboss-as-7/jboss-as-7-classloading

于 2014-04-22T22:11:00.323 に答える