gpt4 book ai didi

java - Struts2找不到jsp文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:42:35 24 4
gpt4 key购买 nike

我一直在尝试建立一个简单的 Struts2 应用程序,但没有成功,因此我可以继续学习该框架。基本上,我期望发生的是当触发未定义的操作时,将显示默认页面。

此应用程序正在 Eclipse 中开发。

我在 WEB-INF/classes 目录中设置了一个非常简单的 struts.xml 文件:

<struts>
<!-- Include webwork default (from the Struts JAR). -->
<include file="struts-default.xml" />

<!-- Configuration for the default package. -->

<package name="default" extends="struts-default">
<action name="*">
<result>/test.jsp</result>
</action>
</package>
</struts>

我在 WebContent 级别有 test.jsp 文件(只是在 Eclipse 中创建的默认 jsp 模板,即“在此处插入标题”),欢迎页面(触发操作)也是 index.jsp在同一级别并在程序启动时显示。定义如下:

 <%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
<head>
<title>GlassFish JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<s:form action="other">
<s:submit value="Submit" />
</s:form>
</body>
</html>

我也尝试过使用其他操作名称,但无论如何,我都会返回 404 页面未找到。我在 GlassFish 和 Websphere 6.1.1 上都试过这个,结果相同,这让我怀疑我缺少的东西可能就在我面前,涉及目录结构(是相对于 struts 的路径。 xml 文件或上下文根?)或一些配置文件。

经过一些尝试,我能够使用 Glassfish 在 Mac OS X 10.5.6 上的 Eclipse Ganymede 上启动并运行它,但我仍然无法使用 IBM Websphere 和 Application Server Toolkit(一个 Eclipse 衍生物) Windows XP。我有点怀疑这可能与浏览器有关。

我刚刚尝试将名为“other.action”的文件添加到与上述其他 JSP 文件相同的目录中。现在,当我单击链接到“其他”操作的提交按钮时,该操作成功进入我的 test.jsp 页面。我可能不正确,但我不认为我应该为我可能需要使用的每个可能的“someaction”提供一个名为“someaction.action”的文件(我知道我在 OS X 上不需要它运行我的应用程序)。

更多更新 - 我刚刚在 Firefox 3.5.2 上试过,在该浏览器上运行得到了相同的结果 - 在 Websphere 上找不到没有“other.action”文件的文件,所以现在我怀疑这是一个 Websphere 配置问题。

最佳答案

使用 Firefox 提供了确定此问题根源所需的关键 -错误 404:SRVE0190E 消息告诉我问题出在 Websphere 配置上。

此问题在以下链接中有更详细的解释:

IBM Websphere WebContainer throws a FileNotFoundException when a request is received for a static file which does not exist on the file system.

此链接解释了解决方案(在本例中,设置 com.ibm.ws.webcontainer.invokefilterscompatibility 值=true):

Websphere setting up custom properties

为了完整起见,我将在此处说明如何更正此问题:

-在管理控制台中,单击“服务器”,然后在“服务器”下单击“应用程序服务器”

-点击要应用自定义属性的服务器

-在“配置”和“容器设置”下单击“Web 容器设置”,然后在“Web 容器设置”下单击“Web 容器”

-在“配置”和“其他属性”下单击“自定义属性”

-在自定义属性页面,点击“新建”

-在设置页面中,在“名称”字段中输入要添加的自定义属性的名称,在“值”字段中输入要为自定义属性设置的值。请注意,某些属性区分大小写。对于此问题,属性为“com.ibm.ws.webcontainer.invokefilterscompatibility”,值为“true”

-点击“应用”或“确定”

-在出现的“消息”框中点击“保存”重启服务器使自定义属性生效

关于java - Struts2找不到jsp文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1337786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com