0

我正在编写一个 servlet,它接收一个 xml 文件,将它提供给另一个类,并将一个带有一些注释的 html 文件返回给客户端。我正在使用以下内容获取 input-xml:

input = request.getInputStream();

但是这个输入是一个 ServletInputStream,而另一个类(用于注释)需要一个 FileInputStream。

如果我给 XMLEventReader(在另一个类中)ServletInputStream,我得到一个解析错误:

ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.

我认为这是因为 servletinputstream 而不是 fileinputstream。

问候我希望有人能够帮助我:)

4

3 回答 3

3

我认为后一个问题不太可能是由于它是ServletInputStream. 解析器不应该关心数据的来源。

我认为输入流中的数据更可能不正确。

如果可能的话,您当前需要的类FileInputStream应该被重构以使用......否则您必须首先将数据写入实际文件,这显然不理想。InputStream

于 2010-08-10T10:51:04.177 回答
0

您应该从 ServletInputStream 中读取数据,并将其转储到 FileOutputStream 中。通过这种方式,您可以查看正在发送的数据,然后使用 FileInputStream 和您描述的需要它的类单独测试该数据。我的猜测是,现在会发生同样的事情,因为就像之前的海报所建议的那样,数据可能是错误的格式。

于 2010-08-10T10:56:24.033 回答
0

好的,我现在有点聪明了:) 问题是:在 ServletInputStream 的开头(和结尾的一行)一些标头信息(如内容类型等)。有没有聪明的解决方案来削减这些信息?

问候

于 2010-08-10T11:39:08.637 回答