应用程序不是从websphere 8.5.5开始,但在tomcat中工作正常

时间:2013-12-30 12:45:00

标签: java websphere java-ee-6 guava websphere-8

我有一个可以在tomcat中部署的Web应用程序,但是相同的应用程序没有在websphere 8.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>

4 个答案:

答案 0 :(得分:6)

您收到的错误表示上下文/*已被其他应用程序使用。 Web应用程序的上下文必须是唯一的。

您发布的web.xml没有context-root标记,因此看起来WebSphere假定/*。您可以执行以下操作之一进行更正:

  1. 更新您的web.xml以包含context-root 。您可能需要重新部署应用程序才能使其生效。
  2. 或者,在WebSphere中更改应用程序的上下文根。这可以通过登录到控制台管理员,导航到应用程序&gt;来完成。企业应用程序&gt; [应用名称]&gt; Web模块的上下文根。然后可以在此处指定上下文根。

答案 1 :(得分:5)

最后我可以解决这个问题。

我的应用程序使用google guava库,库版本为15.0。我发现guava库(版本:15.0)与jee6(more information)不兼容。所以我将版本从15.0更改为14.0.1然后正确部署了应用程序。

我不明白的是,我怎么能理解以下错误信息出了什么问题?难道你不认为弄清楚它有点困难。

  

引起:com.ibm.ws.webcontainer.exception.WebAppNotLoadedException:无法加载webapp

我相信这是有用的信息。

答案 2 :(得分:2)

我得到同样的错误,所以我做的是登录到管理控制台然后转到应用程序,然后转到Websphere企业应用程序(在这里你可以找到所有部署的应用程序列表)。 只需取消部署默认应用程序(在安装Web范围时部署此应用程序)。 一旦取消部署,它就会起作用。

答案 3 :(得分:1)

转到IBM Console-&gt; Application-&gt; Application Types-&gt; Websphere Enterprice Application。

删除您的应用程序以外的所有应用程序。

Websphere会自动创建一些示例应用程序,在该应用程序中,有些指向“./”

我的问题就这样解决了。