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

Jsf XML分析错误:未找到元素位置:http://localhost:8081/web-app/pages/login.xhtml第1行第1列:^,jsf,xml-parsing,facelets,Jsf,Xml Parsing,Facelets,My 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"> 我正在使用Java8、JSF、Primefaces、Maven和Tomcat8。 我认为我的配置有问题,

My 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">
我正在使用Java8、JSF、Primefaces、Maven和Tomcat8。 我认为我的配置有问题,例如servlet和web.xml

XML分析错误:未找到元素位置:[……]行号1,第1列

在这一点上,这个确切的错误意味着webbrowser在被指示将响应解释为XML时检索到一个完全空的响应,通常是通过内容类型头(如application/xhtml+XML或application/XML),或者如果没有,则通过URL中的文件扩展名(如.xhtml或.XML)

考虑到这是在请求JSF登录页面时发生的,这强烈表明它包含语法/运行时错误,并且webapp没有正确配置错误处理。显然,错误页面本身也会在登录/安全约束后被阻止,导致服务器无法提供包含所有异常详细信息的正常错误页面,因此返回完全空的响应

最好的方法是读取服务器日志中的实际异常和/或运行调试器和/或创建一个日志,该日志将异常显式记录到服务器日志中,以防您无法找到异常,从而导致异常被吞没。一旦有了实际的异常,通常需要使用异常类型+消息+第1行作为关键字在Internet上查找线索。

XML解析错误:未找到根元素

当客户端发送如下请求时,会发生此错误:

curl -X GET --header 'Accept: application/json' 'http://192.168.1.249:9001/students/
您可以在类似“Accept:application/json”的标题中看到,这意味着客户端只接受json格式的服务器响应

但服务器以XML内容类型生成响应类型,并尝试将XML解析为JSON。在此阶段,将触发异常

解决方案:

请将响应内容类型更改为application/json或 将请求头更改为“Accept:application/xml”


谢谢。

非常感谢。我的侦听器在tomcat输出中出错。我修好了,现在看起来好多了。是的,你说得对,我需要实现web应用处理。不客气。既然你是新来的,别忘了在最有助于理解和解决具体问题的答案上标注“接受”。另见