JavaWebSphere8,web。xml version=“3.0”,默认servletmapping?
将遗留应用程序从WebSphereV.6迁移到WebSphereV.8。应用程序的web。xml只包含servlet的声明,而不包含servlet映射。但是,没有servlet映射的所有servlet都可以通过默认的url模式/servlet/[servlet名称]访问。然而,在WAS8上,如果是web。更新xml时,属性版本设置为“3.0”:
<web-app 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_3_0.xsd"
**version="3.0"**>
servlet没有默认映射,需要显式映射,否则找不到404页
在Servlet3.0或至少WebSphere8中,是否有方法为所有servlet定义默认url模式?tomcat有InvokerServlet,WebSphereV.8有它的版本吗
# 1 楼答案
看看你的答案,有一种方法可以做你想做的事。对于
Servlet 3.0
,ibm-web-ext.xmi文件将替换为ibm-web-ext.xml,并且可以应用您提到的那些设置。以下是ibm-web-ext.xml
文件的示例代码:进一步阅读请看EJB 3.0 application bindings overview
# 2 楼答案
原来WebSphere的旧版本使用了专有的ibm web-*。用于定义特定于供应商的部署选项的xmi描述符。然而,自从v8。0支持。xmi文件被删除(但在声明为servlet“2.4”的应用程序中仍然支持向后兼容性)。我正在迁移的旧应用程序在web-INF中包含以下ibm-web-ext.xmi:
因此,属性serveservletsbyclassnamenabled=“true”按名称创建了旧的应用程序映射servlet,而没有servlet映射。如果应用程序是servlet 3.0,则不支持此操作