我使用基于表单的身份验证(使用 JSF)创建了一个简单的登录测试设置。我有一个 login.jsf 页面和一个 error.jsf 页面,可以在登录失败时重定向到。现在,在我正在关注的教程中(这本书是Java EE 6 Development with Netbeans 7),他们最初创建了两个页面,其中包含相同的登录项,然后通过使用带有里面的登录表单。
当我没有 JSF 段时,登录设置运行良好。由于添加了 JSF 段并更改了两个页面以使用它,我收到一个 500 Internal Server 错误,其中包含与我正在使用的任何页面相关的 FileNotFoundException,但只是第一次!如果我在收到此错误后刷新页面,它可以工作。
这是有问题的部分:
<!-- loginform.jspf -->
<%@ page pageEncoding="UTF-8" %>
<p>Please enter your username and password:</p>
<form method="POST" action="j_security_check">
<table border="1">
<tbody>
<tr>
<td>Username: </td>
<td><input type="text" name="j_username" value="" /></td>
</tr>
<tr>
<td>Password: </td>
<td><input type="password" name="j_password" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="Login" />
</form>
由于我进行了此更改,我尝试恢复为简单地让两个页面包含相同表单的不同版本,但仍然没有运气。
这是 Glassfish 在第一次加载其中一个页面时抛出异常的示例:
如果您需要我上传更多源代码进行故障排除,请在评论中说出来,我会发布它(除非必要,否则我不希望这个问题被源代码淹没)。
谢谢你的时间!
编辑:我注意到一件快速的事情。即使在让 Glassfish 加载一段时间后,第一次访问任何页面时,我仍然会收到此异常。