2010-04-29 56 views
0

我有一个ActionScript文件发送XML到我的servlet。 我只输出空数组。任何人都知道我做错了什么? 输出是:从动作脚本发送XML到Servlet

java.io.StreamCorruptedException:无效流头 在java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:764) 在java.io.ObjectInputStream中(ObjectInputStream.java:277) 在myDungeonAccessor.myDungeonAccessorServlet.doPost(myDungeonAccessorServlet.java:82)

package myDungeonAccessor; 
     protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException {  
try { 
    System.out.println("HEADERS: " + request.getHeaderNames()); 
    ObjectInputStream in = new ObjectInputStream(request.getInputStream()); 
    System.out.println(in); 
    ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream()); 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 

异常

+0

将来,请尽量减少代码片段以仅显示相关的**代码。删除javadocs,删除所有未标注的行,删除所有无法解决的方法。关于* actual *问题,尽可能简短和简洁(即只显示*实际使用的*代码行)。例如,你是否使用过GET或POST等是不清楚的。 – BalusC 2010-04-29 14:50:34

+0

对不起,更新的代码没有意义。它实际上没有任何业务。它只是使用请求标头名称来打印枚举,并且它还打印装饰请求主体的ObjectInputStream的引用。它实际上不是从请求主体读取,也不是写入响应主体。对于“相关”代码,我的意思是代码的最小数量,它能够再现您正面临的确切问题。你是否明白了每一行代码到底在做什么?如果没有,那么我会后退一步,先看看。 – BalusC 2010-05-01 04:11:34

+0

我不认为你理解这个问题.... 我无法检索到我发送给它的XML。 如何才能正确读取XML数据?我正在尝试读取对象输入流中的XML .... 我创建了一个ActiomScript文件,它将创建一个XML字符串,并且我想将XML字符串发送到数据库。我想用一个servlet来做到这一点。我只是在Java端接收XML时遇到了问题。它发送正常,但我不知道如何正确保存XML – 2010-05-01 17:41:31

回答

1

System.out.println()写入标准输出(其通常在服务器日志和/或IDE控制台结束,如果任何),而不是回应。改为写入response.getWriter()

也就是说,我建议使用XStream来编写完整的Javabeans到XML without pains

response.setContentType("text/xml"); 
response.setCharacterEncoding("UTF-8"); 
new XStream().toXML(bean, response.getOutputStream()); 
+0

感谢您的建议,让别人更容易帮助我。 虽然问题是接收数据,我收到异常'java.io.StreamCorruptedException:无效的流头' – 2010-04-30 03:39:25