0

Websphere Application Server バージョン 7 (正確には 7.0.0.17) にEAR をデプロイしようとしています。Perf4j以前のバージョンは問題なく動作していました..

ログに次の例外があり、インストールに失敗します。

com.ibm.ws.exception.RuntimeWarning: java.lang.TypeNotPresentException: Type org.perf4j.log4j.aop.EjbTimingAspect not present
    at com.ibm.ws.metadata.ejb.EJBMDOrchestrator.processBean(EJBMDOrchestrator.java:1357)
    at com.ibm.ws.runtime.component.EJBContainerImpl.startModule(EJBContainerImpl.java:2618)
    at com.ibm.ws.runtime.component.EJBContainerImpl.start(EJBContainerImpl.java:3826)
    [....snip...snip...]
Caused by: java.lang.TypeNotPresentException: Type org.perf4j.log4j.aop.EjbTimingAspect not present
    at com.ibm.oti.reflect.AnnotationHelper$AnnotationInvocationHandler.invoke(AnnotationHelper.java:131)
    at $Proxy27.value(Unknown Source)
    at com.ibm.ws.metadata.ejb.InterceptorMetaDataFactory.addMethodLevelInterceptors(InterceptorMetaDataFactory.java:1263)
    at com.ibm.ws.metadata.ejb.InterceptorMetaDataFactory.updateEJBMethodInfoInterceptorProxies(InterceptorMetaDataFactory.java:1384)
    at com.ibm.ws.metadata.ejb.InterceptorMetaDataFactory.createInterceptorMetaData(InterceptorMetaDataFactory.java:410)
    at com.ibm.ws.metadata.ejb.EJBMDOrchestrator.initializeInterceptorMD(EJBMDOrchestrator.java:6924)
    at com.ibm.ws.metadata.ejb.EJBMDOrchestrator.finishBMDInit(EJBMDOrchestrator.java:1761)
    at com.ibm.ws.metadata.ejb.EJBMDOrchestrator.processBean(EJBMDOrchestrator.java:1346)
    ... 48 more
Caused by: java.lang.ClassNotFoundException: org.perf4j.log4j.aop.EjbTimingAspect
    at com.ibm.oti.reflect.AnnotationHelper.getReturnValueForEntry(Native Method)
    at com.ibm.oti.reflect.AnnotationHelper.access$000(AnnotationHelper.java:16)
    at com.ibm.oti.reflect.AnnotationHelper$AnnotationInvocationHandler.invoke(AnnotationHelper.java:129)
    ... 55 more

クラスorg.perf4j.log4j.aop.EjbTimingAspectPerf4jjar の一部であり、EAR に追加されます (チェックおよび確認済み)。

もちろん、Websphere ではいつものように、クラスローディングの問題が疑われます (私たちのアプリケーションは を使用しparent firstており、過去にいくつかの問題を引き起こしたため、変更はオプションではありません) が、フォーラムや Google で何も見つかりません。

誰が何が間違っているのか考えていますか? 誰も?さあ、この問題を抱えているのは私だけではないと確信しています!

4

1 に答える 1

0

さて、ついにその答えが見つかりました。EJB層のPOMに依存関係を追加するだけでは不十分なようです。クラスは、EJB層でのみ使用していますが、内部アプリケーション(WARファイル)にも依存関係がある必要があります...

まあ、Websphereの内部魔法です。

于 2011-12-15T10:59:21.473 に答える