TomcatにデプロイできるWebアプリケーションがありますが、同じアプリケーションがwebsphere8.5.5で起動していません。次の情報を提供するSystemErr.logファイルを確認しましたが、アプリケーションが起動しない理由をデバッグできません。問題についてもっと知りたい場合は、何をする必要がありますか。
Application Serverバージョン:Websphere 8.5.5
Javaバージョン:Javaバージョン "1.7.0_25"
OpenJDKランタイム環境(rhel-2.3.10.4.el6_4-x86_64)
[12/30/13 12:43:01:144 CET] 000000ab SystemErr R Caused by: com.ibm.ws.webcontainer.exception.WebAppNotLoadedException: Failed to load webapp: Failed to load webapp: Context root /* is already bound. Cannot start application My Application
[12/30/13 12:43:01:149 CET] 000000ab SystemErr R at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.Java:759)
[12/30/13 12:43:01:149 CET] 000000ab SystemErr R at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.Java:634)
[12/30/13 12:43:01:149 CET] 000000ab SystemErr R at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.Java:426)
[12/30/13 12:43:01:149 CET] 000000ab SystemErr R ... 93 more
[12/30/13 12:43:01:149 CET] 000000ab SystemErr R Caused by: com.ibm.ws.webcontainer.exception.WebAppNotLoadedException: Failed to load webapp: Context root /* is already bound. Cannot start application My Application
[12/30/13 12:43:01:150 CET] 000000ab SystemErr R at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.Java:133)
[12/30/13 12:43:01:150 CET] 000000ab SystemErr R at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.Java:749)
[12/30/13 12:43:01:150 CET] 000000ab SystemErr R ... 95 more
これがweb.xmlファイルです
<?xml version="1.0" encoding="UTF-8"?><web-app metadata-complete="true" version="2.5" xmlns="http://Java.Sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>My Application</display-name>
<servlet>
<display-name>MyApplication</display-name>
<servlet-name>app</servlet-name>
<servlet-class>com.seeta.vadali.MyReceiverServlet</servlet-class>
<init-param>
<param-name>uploadDir</param-name>
<param-value>/tmp</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/any</url-pattern>
</servlet-mapping>
</web-app>
表示されるエラーは、コンテキスト/*
がすでに別のアプリケーションによって使用されていることを示しています。 Webアプリケーションのコンテキストは一意である必要があります。
投稿したweb.xmlにはcontext-root
タグがないため、WebSphereは/*
を想定しているようです。次のいずれかを実行して修正できます。
最後に、問題を修正できます。
私のアプリケーションはグーグルグアバライブラリを使用しており、ライブラリのバージョンは15.0
。 guavaライブラリ(バージョン:15.0)はjee6と互換性がないことがわかりました( 詳細情報 )。そこで、バージョンを15.0から14.0.1に変更すると、アプリケーションが正しくデプロイされました。
私が理解していなかったのは、次のエラーメッセージで何がうまくいかなかったのかをどうやって理解できるかということです。それを理解するのは少し難しいと思いませんか。
原因:com.ibm.ws.webcontainer.exception.WebAppNotLoadedException:webappのロードに失敗しました
これは役立つ情報だと思います。
同じエラーが発生したので、管理コンソールにログインしてからアプリケーションに移動し、次にWebsphereエンタープライズアプリケーションに移動しました(ここでは、デプロイされたすべてのアプリケーションのリストを確認できます)。デフォルトのアプリケーションをアンデプロイするだけです(このアプリケーションは、Web Sphereをインストールするときにデプロイされます)。デプロイを解除すると、機能します。
「IBMコンソール」->「アプリケーション」->「アプリケーション・タイプ」->「WebsphereEnterpriceアプリケーション」に移動します。
YOUR APPLICATION。以外のすべてのアプリケーションを削除します
Websphereはいくつかのサンプルアプリケーションを自動的に作成し、そのアプリケーションでは、いくつかは「./」を指しています。
私の問題はこのように解決しました。