Java 11でOpenWebBeans CDIが失敗する

アディティアバトラ:

私のアプリケーションはJava 11、Tomcat 9.0.13、およびOpenWeBeans CDI 2.0.8を使用しています。Tomcatサーバーを起動すると、次のエラーが発生します。

Dec 19, 2018 9:59:04 AM org.apache.webbeans.servlet.WebBeansConfigurationListener contextInitialized
SEVERE: An error occurred while starting application context path : [/abcServer]
Dec 19, 2018 9:59:04 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.apache.webbeans.servlet.WebBeansConfigurationListener
org.apache.webbeans.exception.WebBeansDeploymentException: java.lang.IllegalArgumentException
    at org.apache.webbeans.corespi.scanner.AbstractMetaDataDiscovery.scan(AbstractMetaDataDiscovery.java:144)
    at org.apache.webbeans.lifecycle.AbstractLifeCycle.bootstrapApplication(AbstractLifeCycle.java:132)
    at org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication(AbstractLifeCycle.java:104)
    at org.apache.webbeans.web.lifecycle.WebContainerLifecycle.startApplication(WebContainerLifecycle.java:87)
    at org.apache.webbeans.servlet.WebBeansConfigurationListener.contextInitialized(WebBeansConfigurationListener.java:85)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1694)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1684)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalArgumentException
    at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)
    at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)
    at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)
    at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinder.java:1169)
    at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java:147)
    at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java:160)
    at org.apache.webbeans.corespi.scanner.xbean.OwbAnnotationFinder.<init>(OwbAnnotationFinder.java:37)
    at org.apache.webbeans.corespi.scanner.AbstractMetaDataDiscovery.initFinder(AbstractMetaDataDiscovery.java:107)
    at org.apache.webbeans.corespi.scanner.AbstractMetaDataDiscovery.scan(AbstractMetaDataDiscovery.java:140)
    ... 13 more

Dec 19, 2018 9:59:04 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class com.xyz.abc.application.impl.ApplicationControllerAdapter
javax.enterprise.inject.UnsatisfiedResolutionException: Api type [com.xyz.abc.cleanup.CleanupJobController] is not found with the qualifiers 
Qualifiers: [@javax.enterprise.inject.Default()]
for injection into Field Injection Point, field name :  cleanupJobController, Bean Owner : [null]
    at org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatisfiedResolutionException(InjectionExceptionUtil.java:65)
    at org.apache.webbeans.container.InjectionResolver.getInjectionPointBean(InjectionResolver.java:271)
    at org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:82)
    at org.apache.webbeans.inject.InjectableField.doInjection(InjectableField.java:65)
    at org.apache.webbeans.portable.InjectionTargetImpl.injectFields(InjectionTargetImpl.java:220)
    at org.apache.webbeans.portable.InjectionTargetImpl.inject(InjectionTargetImpl.java:206)
    at org.apache.webbeans.portable.InjectionTargetImpl.inject(InjectionTargetImpl.java:196)
    at com.xyz.abc.inject.CDIUtils.injectFields(CDIUtils.java:37)
    at com.xyz.abc.application.impl.ApplicationStarted.<init>(ApplicationStarted.java:149)
    at com.xyz.abc.application.impl.ApplicationControllerAdapter.contextInitialized(ApplicationControllerAdapter.java:34)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1694)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1684)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

Dec 19, 2018 9:59:04 AM com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized
INFO: WSSERVLET12: JAX-WS context listener initializing
Dec 19, 2018 9:59:04 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
Dec 19, 2018 9:59:04 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/abcServer] startup failed due to previous errors
Dec 19, 2018 9:59:04 AM com.sun.xml.ws.transport.http.servlet.WSServletDelegate destroy
INFO: WSSERVLET15: JAX-WS servlet destroyed
Dec 19, 2018 9:59:04 AM com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextDestroyed
INFO: WSSERVLET13: JAX-WS context listener destroyed
Dec 19, 2018 9:59:04 AM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class com.xyz.abc.application.impl.ApplicationControllerAdapter
javax.enterprise.inject.UnsatisfiedResolutionException: Api type [com.xyz.abc.licensing.License] is not found with the qualifiers 
Qualifiers: [@javax.enterprise.inject.Default()]
for injection into Field Injection Point, field name :  license, Bean Owner : [null]
    at org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatisfiedResolutionException(InjectionExceptionUtil.java:65)
    at org.apache.webbeans.container.InjectionResolver.getInjectionPointBean(InjectionResolver.java:271)
    at org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:82)
    at org.apache.webbeans.inject.InjectableField.doInjection(InjectableField.java:65)
    at org.apache.webbeans.portable.InjectionTargetImpl.injectFields(InjectionTargetImpl.java:220)
    at org.apache.webbeans.portable.InjectionTargetImpl.inject(InjectionTargetImpl.java:206)
    at org.apache.webbeans.portable.InjectionTargetImpl.inject(InjectionTargetImpl.java:196)
    at com.xyz.abc.inject.CDIUtils.injectFields(CDIUtils.java:37)
    at com.xyz.abc.application.impl.ApplicationStopped.<init>(ApplicationStopped.java:85)
    at com.xyz.abc.application.impl.ApplicationControllerAdapter.contextDestroyed(ApplicationControllerAdapter.java:27)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5157)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5830)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:221)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:149)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1694)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1684)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

この問題の解決方法を提案してください。Tomcatのopewebbeans CDIを最新のものに更新し、JaxB-apiも更新しましたが、何も機能しないようです。Java 11でTomcat 9を使用している人はいますか?

セラロン:

TL; DR:OWBを1.6から2.0に更新しましたが、その依存関係を更新できませんでした

OpenWebBeans 2.0.8はxbean-asm7-shaded-4.12、クラスの実装に依存しorg.apache.xbean.asm7.ClassReaderます。どういうわけか、OWBは古いクラスorg.apache.xbean.asm5.ClassReader使用して、CDI注釈付きBeanクラスを検出します。しかし、2015年の開発者、2018年のJava 11クラスの読み方(scnr)を予測できませんでした。

少しテストしたところxbean-finder-shaded-4.3、クラスパスに古いが必要です。これは、古いに依存し、使用しorg.apache.xbean.asm5.ClassReaderていxbean-asm5-shadedます。

結論として、例外スタックトレースによって指摘された依存関係の競合を解消することをお勧めします。さらに、mavenなどのビルドツールを使用することもできます。これは、大部分が火傷することなく依存地獄を乗り越えるのに役立ちます。

編集:

コメントについては、次の質問を参照してください。

環境によっては、Java 9で非推奨になり、Java 11で削除されたモジュールの代替を追加する必要がある場合もあります。

編集2:

フォローアップの質問への私の回答に記述されいるとおりに@Inject DocumentBuilderFactory注釈が付けられたプロデューサーメソッドを使用してインスタンスを作成できます@Produces

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaで同期が失敗する

分類Dev

asanaAPI統合がJAVAで失敗する

分類Dev

Spring Boot / Java 11でInfinispanがNoClassDefFoundErrorで失敗するのはなぜですか?

分類Dev

CircleCI Java11ビルドが失敗する

分類Dev

Javaで二重比較が失敗する

分類Dev

Java文字列の分割が「\ n」で失敗する

分類Dev

Java NIO Files.createFile()がNoSuchFileExceptionで失敗する

分類Dev

Javaでの日付検証が失敗する

分類Dev

新しいArrayList <int>()がJavaで失敗する

分類Dev

GradleビルドがJava IOExceptionで失敗する

分類Dev

SpringBoot統合テストがjava.awt.HeadlessExceptionで失敗する

分類Dev

appbundle-maven-pluginがJava 10のMac OSXで失敗する

分類Dev

JaCoCoレポートがJenkinsで失敗する:java.lang.ArrayIndexOutOfBoundsException

分類Dev

XML署名の検証がJavaで失敗する

分類Dev

oracleregex_like関数がJavaで失敗する

分類Dev

Jenkins PipelineのdeleteDir()がjava.nio.file.AccessDeniedException例外で失敗する

分類Dev

JavaリクエストでのHTTPSSSLGETが失敗する

分類Dev

webupd8oracle-java-7-installerが404で失敗する

分類Dev

Javaで正規表現が失敗する

分類Dev

Spring BootJPAテストがjava.lang.IllegalArgumentExceptionで失敗する

分類Dev

文字列javaの "" +で==操作が失敗する理由

分類Dev

@WebMvcTestがjava.lang.IllegalStateExceptionで失敗する:ApplicationContextのロードに失敗しました

分類Dev

awslambdaがjdk11で失敗する

分類Dev

VectorAssemblerがjava.util.NoSuchElementExceptionで失敗する:ParamhandleInvalidが存在しません

分類Dev

Gradleビルドがjava8で失敗するのはなぜですか?

分類Dev

oracle-java8-installerpkgrepo.managedがsaltstackで失敗するのはなぜですか

分類Dev

Java時間の比較が失敗するのはなぜですか?

分類Dev

GlassfishでDerbyプールのpingがjava.net.ConnectExceptionで失敗する

分類Dev

Java EE8でインジェクションが失敗する-FacesValidatorで

Related 関連記事

  1. 1

    Javaで同期が失敗する

  2. 2

    asanaAPI統合がJAVAで失敗する

  3. 3

    Spring Boot / Java 11でInfinispanがNoClassDefFoundErrorで失敗するのはなぜですか?

  4. 4

    CircleCI Java11ビルドが失敗する

  5. 5

    Javaで二重比較が失敗する

  6. 6

    Java文字列の分割が「\ n」で失敗する

  7. 7

    Java NIO Files.createFile()がNoSuchFileExceptionで失敗する

  8. 8

    Javaでの日付検証が失敗する

  9. 9

    新しいArrayList <int>()がJavaで失敗する

  10. 10

    GradleビルドがJava IOExceptionで失敗する

  11. 11

    SpringBoot統合テストがjava.awt.HeadlessExceptionで失敗する

  12. 12

    appbundle-maven-pluginがJava 10のMac OSXで失敗する

  13. 13

    JaCoCoレポートがJenkinsで失敗する:java.lang.ArrayIndexOutOfBoundsException

  14. 14

    XML署名の検証がJavaで失敗する

  15. 15

    oracleregex_like関数がJavaで失敗する

  16. 16

    Jenkins PipelineのdeleteDir()がjava.nio.file.AccessDeniedException例外で失敗する

  17. 17

    JavaリクエストでのHTTPSSSLGETが失敗する

  18. 18

    webupd8oracle-java-7-installerが404で失敗する

  19. 19

    Javaで正規表現が失敗する

  20. 20

    Spring BootJPAテストがjava.lang.IllegalArgumentExceptionで失敗する

  21. 21

    文字列javaの "" +で==操作が失敗する理由

  22. 22

    @WebMvcTestがjava.lang.IllegalStateExceptionで失敗する:ApplicationContextのロードに失敗しました

  23. 23

    awslambdaがjdk11で失敗する

  24. 24

    VectorAssemblerがjava.util.NoSuchElementExceptionで失敗する:ParamhandleInvalidが存在しません

  25. 25

    Gradleビルドがjava8で失敗するのはなぜですか?

  26. 26

    oracle-java8-installerpkgrepo.managedがsaltstackで失敗するのはなぜですか

  27. 27

    Java時間の比較が失敗するのはなぜですか?

  28. 28

    GlassfishでDerbyプールのpingがjava.net.ConnectExceptionで失敗する

  29. 29

    Java EE8でインジェクションが失敗する-FacesValidatorで

ホットタグ

アーカイブ