XML解析错误:找不到元素位置:http:// localhost:8081/web-app/pages/login.xhtml第1行,第1列:^

Mic*_*hal 4 jsf facelets xml-parsing

我的login.xhtml开头是:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)

我使用的是Java 8,JSF,Primefaces,Maven,Tomcat8.我认为我的配置有问题,例如servlets和web.xml.

Bal*_*usC 11

XML解析错误:找不到元素位置:[...]行号1,第1列

重要的是,此确切的错误意味着,web浏览器检索的完全空的响应,而被指示其解释响应为XML,通常是通过将Content-Type标头例如application/xhtml+xmlapplication/xml,或者如果不存在,通过在URL中的文件扩展名,例如.xhtml.xml.

鉴于在请求JSF登录页面时发生这种情况,这强烈暗示它包含语法/运行时错误,并且webapp没有正确配置错误处理.显然,错误页面本身也会在登录/安全性约束后被阻止,导致服务器无法呈现包含所有异常详细信息的"正常"错误页面,因此返回完全空的响应.

您最好的选择是读取服务器日志以获取实际异常和/或运行调试器和/或创建一个JSF异常处理程序,该处理程序显式记录服务器日志的异常(以防您无法找到异常,因此它们似乎被吞下).一旦掌握了实际的异常,通常需要使用异常类型+消息+第1行作为关键字来查找Internet上的线索.