2013-11-27 5 views
5

WebSphere 8.5でWebアプリケーションを開始する際にこのエラーが発生しました。 DB2上のMyBatisストアード・プロシージャーによるアプリケーション呼び出し。ユーザーはJerseyフレームワークを使用して実装されたREST WSを使用して呼び出しをトリガーします。春はすべて一緒に接着します。同じアプリケーションがTomcat 7上で正常に動作します。誰もこのエラーを見ましたか?どんな助けにも感謝します)。アプリケーションのコンテキストと依存性注入コンテナを初期化できないようです。Webspereで例外アプリケーションを開始しています。8.5

スタックトレース:

[26.11.13 10:20:36:339 MSK] 000000a3 BeansDeployer E BeansDeployer deploy 
           java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException 
       at org.apache.webbeans.portable.AnnotatedElementFactory.newAnnotatedType(AnnotatedElementFactory.java:150) 
       at org.apache.webbeans.config.BeansDeployer.deployFromClassPath(BeansDeployer.java:484) 
       at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:171) 
       at org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication(AbstractLifeCycle.java:124) 
       at org.apache.webbeans.web.lifecycle.WebContainerLifecycle.startApplication(WebContainerLifecycle.java:78) 
       at com.ibm.ws.webbeans.common.CommonLifeCycle.startApplication(CommonLifeCycle.java:106) 
       at com.ibm.ws.webbeans.services.JCDIServletContainerInitializer.onStartup(JCDIServletContainerInitializer.java:85) 
       at com.ibm.ws.webcontainer.webapp.WebAppImpl.initializeServletContainerInitializers(WebAppImpl.java:613) 
       at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:409) 
       at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88) 
       at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169) 
       at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:746) 
       at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634) 
       at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:426) 
       at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:718) 
       at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1175) 
       at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1370) 

skip ... 

       at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
       at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
       at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
       at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
       at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862) 
Caused by: java.lang.ArrayIndexOutOfBoundsException 
       at org.apache.webbeans.portable.AbstractAnnotatedCallable.setAnnotatedParameters(AbstractAnnotatedCallable.java:66) 
       at org.apache.webbeans.portable.AnnotatedConstructorImpl.<init>(AnnotatedConstructorImpl.java:56) 
       at org.apache.webbeans.portable.AnnotatedElementFactory.newAnnotatedType(AnnotatedElementFactory.java:117) 
       ... 108 more 
+0

stacktrace CDIから判断すると、あなたのアプリケーションはSpringとは別にブートストラップされます。あなたのファイル(または関連するjarファイル)に 'beans.xml'がないことを確認してください。そうすればCDIが起動されます。 –

+0

いずれにしても、これは製品の欠陥のようです。私はIBMとPMRを開くことをお勧めします。 –

+5

問題が解決しました。問題はプロジェクトがGuavaを使用していたことですが、使用されているバージョンは最新のCDIをサポートしています。 WebSphereは、Appache OpenWebの旧バージョンのCDI実装を使用しています。この問題に対処するGuavaライブラリのバージョンがあります。 POMファイルで: com.google.guava グアバ 15.0 cdi1.0 user3040441

答えて

6

は、この答えはuser3040441さんのコメントに基づいているのWebsphere 8上に同じ問題を抱えていました。これを解決しようとする他の人たちのための余分な研究を避けるためです。

https://code.google.com/p/guava-libraries/wiki/Release15#A_note_on_JEE6_/_CDI_1.0

音符JEE6/CDI 1.0に

(JEE7容器に使用される)CDI 1.1 と互換性を持たせるためにグアバ15.0で添加回避策は、(CDI 1.0グァバのために問題が発生JEE6コンテナ内で を使用)。

CDI 1.0環境でGuavaを使用している場合は、通常のGuavaジャーの代わりに guava-15.0-cdi1.0.jarを使用する必要があります。

<dependency> 
    <groupId>com.google.guava</groupId> 
    <artifactId>guava</artifactId> 
    <version>15.0</version> 
    <classifier>cdi1.0</classifier> 
</dependency> 

https://code.google.com/p/guava-libraries/issues/detail?id=1527#c20

JSR-330注釈はグアバ16.0ために除去されているので、できれば が有するさらなる問題は存在しない、:のようにMavenに、 依存関係を特定することができますCDI。アノテーションを利用していたコードが動作を停止すると、今度は という問題が発生します。

+0

これを把握しようとすると、乾草の中の完全な針について話してください。あなたがどこにいるのか分かっていたら、私はあなたにビールを買うだろう。他の人は、問題を持っているpomの依存関係階層タブを表示したり、 "guava"を検索したりすることができます。これは、あなたが含む依存関係の隠れた依存関係である可能性があります。その後、guavaの依存関係を右クリックし、無効にするか保存するかを選択することができます。xmlビューを開き、guavaの除外があることを確認します。その後、上記で提供されたStefanの依存関係をインポートして手動で置き換えます。私はこの間に数日間サークルを回りました。ありがとうございました! – Russ