java - WebSphere 8,web.xml 版本 ="3.0",默认 servlet 映射?

标签 java websphere web.xml servlet-3.0

将遗留应用程序从 WebSphere v.6 迁移到 WebSphere v.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"**> 

servlets 松散默认映射,需要显式映射,否则找不到 404 页面。

在 servlet 3.0 或至少是 WebSphere 8 中有没有办法为所有 servlet 定义一个默认的 url 模式?有用于 tomcat 的 InvokerServlet,是否有用于 WebSphere v.8 的版本?

最佳答案

旧版本的 WebSphere 使用专有的 ibm-web-*.xmi 描述符来定义供应商特定的部署选项。然而,从 v8.0 开始,对 .xmi 文件的支持被删除了(但仍然支持声明为 servlet“2.4”的应用程序的向后兼容性)。我正在迁移的旧应用程序在 WEB-INF 中包含以下 ibm-web-ext.xmi:

<?xml version="1.0" encoding="UTF-8"?>
<com.ibm.ejs.models.base.extensions.webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:com.ibm.ejs.models.base.extensions.webappext="webappext.xmi" xmi:id="WebApp_ID_Ext" reloadingEnabled="true" fileServingEnabled="true" directoryBrowsingEnabled="false" serveServletsByClassnameEnabled="true">
  <webApp href="WEB-INF/web.xml#cchange"/>
  <extendedServlets xmi:id="ServletExtension_1">
    <extendedServlet href="WEB-INF/web.xml#Servlet_1"/>
  </extendedServlets>
  <jspAttributes xmi:id="JSPAttribute_1" name="keepgenerated" value="true"/>
  <jspAttributes xmi:id="JSPAttribute_1333518196516" name="reloadEnabled" value="true"/>
  <jspAttributes xmi:id="JSPAttribute_1333518196517" name="reloadInterval" value="10"/>
</com.ibm.ejs.models.base.extensions.webappext:WebAppExtension>

因此属性 serveServletsByClassnameEnabled="true"使旧应用程序在没有 servlet 映射的情况下按名称映射 servlet。如果应用程序是 servlet 3.0..,则不支持此选项。

关于java - WebSphere 8,web.xml 版本 ="3.0",默认 servlet 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9973996/

相关文章:

java - 如何使用 if 或 while 语句将 20 个 "plate"外观对象(椭圆形)堆叠到 20 个?我的功能无法正常工作

java - 是 6.1,Java 5 : Interesting Issue - Request with word 'CD' not reaching the servlet

java - 使用 Java 和 IText,如何从 PDF 中提取 AcroForm 字段名称?

java - 无法运行 java 程序! NoClassDefFoundError?

java - 如何使用 Spring Boot 编写集成/系统测试以使用存储库测试服务

ssl - 使用 ikeyman 工具的 key 密码和 keystore 密码

java - 找不到为 JSP 文件生成的 Java 源代码

java - { "readyState": 0 ,"status": 0 ,"statusText": "NetworkError: Failed to execute ' send' on 'XMLHttpRequest' : Failed to load 'http://localhost:8088/' .“}

java - web.xml 的 <web-app> 中的属性在 Eclipse 中不起作用

web-applications - 使用 web.xml 中的属性