全部,
我进行了搜索和研究,但找不到将现有项目从 Tomcat 7.x 迁移到 WebSphere 8.0 所缺少的内容。我已经为这个问题创建了一个解决方法,但我的好奇心越来越好,因为我不明白为什么。我的问题是,当我第一次将项目加载到 WebSphere 时,我得到了There is no Action mapped for namespace [/] and action name [] associated with context path
. 我研究并发现了一些可以尝试的方法。我添加了
com.ibm.ws.webcontainer.removetrailingservletpathslash=true
com.ibm.ws.webcontainer.mapFiltersToAsterisk=true
com.ibm.ws.webcontainer.invokefilterscompatibility=true
无济于事,最终我添加了一个重定向到欢迎页面的空操作,一切都很好。但是,我个人认为这是一种解决方法,而不是解决方法。所以,我想我的问题是为什么它不属于欢迎文件列表?我在设置/转移项目时错过了什么吗?我是否误解了过滤器的工作原理?
我在我的 struts2 解决方法、web.xml 和文件结构下面包含了。感谢你们可以提供任何帮助。
杰夫
web.xml 片段
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>securityContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
struts.xml 片段
<package name="dst" extends="struts-default" namespace="/">
<!-- Added as a workaround to the problem -->
<action name="">
<result>/index.jsp</result>
</action>
</package>
正在使用的文件结构
web
----WEB-INF
--------jsp (Folder holding jsps)
--------lib (Extra jars being used)
--------web.xml
----index.jsp
编辑
按要求
索引.jsp
<%@ page language="java" import="java.util.*" %>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<div> Test Page</div>
</body>
</html>