Java servlet请求javax.xml.stream.XMLStreamException - 文件过早结束

时间:2013-03-24 12:21:16

标签: java google-app-engine servlets jetty httprequest

我正在尝试从2个Jetty服务器(Eclipse - Google插件)中读取和解析rss提要:一个启用了App引擎SDK,另一个没有启动。 1.当我在使用app引擎启用的码头测试时,它可以正常工作 2.当我在没有启用app引擎的Jetty服务器上使用相同的代码时,我收到以下消息(因为收到的文本为空):

javax.xml.stream.XMLStreamException:[row,col]处的ParseError:[1,1] 消息:文件过早结束。

我在代码中搜索了输入流的过早读取(我使用新的URL(主机)和url.openStream()来读取输入),但是代码是正常的(如果它不是它不会可能在第一种情况下工作)。

我使用tcpdump(-s 1024 -l -A dst host.com -i wlan0)来检查标题:

  1. 第一种情况:

    GET / rss / ... HTTP / 1.1

    主持人:www.host.com

    连接:Keep-Alive

    Cookie:环境= a%3A2%3A%7Bs%3A4%3A%22skin%22%3Bs%3A7%3A%22default%22%3Bs%3A4%3A%22lang%22%3Bs%3A5%3A%22ro_RO %22%3B%7D; ISPC = 1

    Cookie2:$ Version = 1

  2. 第二种情况:

    GET / rss / ... HTTP / 1.1

    缓存控制:无缓存

    Pragma:no-cache

    User-Agent:Java / 1.6.0_39

    主持人:www.host.com

    接受:text / html,image / gif,image / jpeg,*; q = .2, / ; Q = 0.2

    连接:keep-alive

  3. 这些标题可能是问题吗?有没有办法设置完全相同的标题?它会解决问题吗?

1 个答案:

答案 0 :(得分:0)

我认为问题是User-Agent标头,它决定了一些服务器为某些值发送空内容(比如我的情况下是Jav / 1.6.0_39)。我将User-Agent设置为空字符串,现在响应正常。