【问题标题】:java.net.ProtocolException: Cannot write output after reading inputjava.net.ProtocolException:读取输入后无法写入输出
【发布时间】:2013-03-27 06:24:14
【问题描述】:

我正在尝试将对象从小程序发送到 struts 动作类 使用对象输出流,但它给了我一个异常java.net.ProtocolException:读取输入后无法写入输出。

我创建了一个新的 URLConnection 实例来提供特定的 url 并尝试在 url 中写入对象以从 applet 发送 struts 动作类

我在小程序的保存按钮点击时调用此方法

公共保存设计() {

    try
    {

        HttpURLConnection  urlConnection = getServletConnection(CallServletConnection.SAVE_DESIGN, null);
        // Pragma = no-cache; should be null

        if(urlConnection != null && urlConnection.getHeaderFields().get("Pragma") != null)
            return false;





OutputStream outstream = urlConnection.getOutputStream();//Exception occur here

        ObjectOutputStream objectoutstream = new ObjectOutputStream(outstream);

        objectoutstream.writeObject("abc");
        objectoutstream.flush();
        objectoutstream.close(); 
        System.out.println("vctObjectDetails is write ");


    }
     catch (MalformedURLException exception) {
        exception.printStackTrace();
    } 
     catch(ConnectException exception) {
            exception.printStackTrace();
     } 
     catch (IOException exception) {
        exception.printStackTrace();
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }


}

但它不起作用。 如果有人知道如何处理此异常,请给我一些提示。

【问题讨论】:

  • 发布完整代码。你一定在某个地方做错了什么.....
  • 添加了完整的代码,如果有什么问题请告诉我。
  • @YuvRAJ 仍然找不到完整的代码。
  • 这个方法有什么作用? getServletConnection
  • 感谢您的快速回复。我得到了解决方案。问题是我的内容类型 - 将其设置为“文本”。

标签: java jakarta-ee applet struts


【解决方案1】:

这一切都与 HTTP 请求的生命周期有关(这是 HttpURLConnection 抽象的)——一旦请求被发送,你就不能再修改它——如果你有更多数据要发送,你只需再做一个一。 下面发生的情况是,一旦您调用 getHeaderFields()(响应标头字段),“HttpURLConnection”就会发送请求并使响应可用。

我不知道 'getServletConnection()' 中的内容,但您可以尝试使用 'doOutput()' 而不是从响应中读取,直到您完成对请求的写入。

【讨论】:

  • getServletConnection() 是一个简单的方法,它给了我一个 servlet 路径,这没有问题。无论如何,我得到了解决方案,感谢您的回复,只需将内容类型设置为“文本”并在该代码中添加一个 getInputStream 即可正常工作。
猜你喜欢
  • 1970-01-01
  • 2021-12-06
  • 2013-12-17
  • 2023-04-09
  • 1970-01-01
  • 2018-08-07
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多