由于 SRVE0303E,WAS 8.5.5.9 无法启动 Web 应用程序

WAS 8.5.5.9 cannot start webapplication because of SRVE0303E

我有以下问题:

在我的 web.xml 中,我定义了如何提供图片:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.jpg</url-pattern>
</servlet-mapping>

在 Tomcat 上工作正常,但在 IBM Websphere 8.5.5.9 上我收到以下错误:

"SRVE0303E: Servlet name for the servlet mapping *.css could not be found."

在另一个站点上,我已经找到了解决此问题的方法 (https://www.ibm.com/developerworks/community/forums/html/topic?id=5f4420ba-0754-43fe-8c87-91acc588d9fc),因此我还创建了与他们的解决方案完全相同的 ibm-web-ext.xml,但错误仍然存​​在。

有人知道我可以做些什么吗?

您还应该在 web.xml

中提及这一点
<servlet>
   <servlet-name>default</servlet-name>
   <servlet-class>your servlet class</servlet-class>
</servlet>

Servlet 映射是根据“”标记中提到的值完成的,将调用相应的 servlet。

感谢@MigratedPigeon,我找到了问题的答案,因为他让我想到了默认 servlet 的 class。

A​​ tomcat 服务器有一个默认的 servlet,tomcat 的默认 servlet 的 class 是

org.apache.catalina.servlets.DefaultServlet

另一方面,Websphere 没有默认的 servlet,这就是我收到错误 "Servlet Name could not be found".

的原因

正如我在原始问题中链接的答案,静态文件服务可以通过使用 web-ext.xml 文件由 websphere 激活,但这仍然没有解决我的 web.xml 问题具有 "default" servlet 的文件。

在我们的应用程序中,我们使用 spring,所以最后我用 springs dispatcher servlet 替换了 web.xml 中的默认 servlet,现在我的 web.xml 文件是对 tomcat 和 websphere 都有效。