java - 线程中的异常 "main"java.lang.IllegalStateException : Already connected

标签 java url

我正在尝试调用 Web 服务并获取响应。当我第一次尝试时,它工作得很好并打印了响应。但在那次运行之后,我跑了多少次,我把我扔了

Exception in thread "main" java.lang.IllegalStateException: Already connected
    at sun.net.www.protocol.http.HttpURLConnection.setRequestProperty(Unknown Source)
    at SOAPClient4XG.main(SOAPClient4XG.java:72)

我已经尝试了针对类似问题提供的各种解决方案(例如连接/断开连接),但似乎没有任何方法可以使其工作。我知道它尝试对现有连接执行操作,但不确定如何修复。我对这一切还很陌生,我需要帮助。

下面是我的代码

    import java.io.*;
    import java.net.*;

    public class SOAPClient4XG 
    {
     private static HttpURLConnection httpConn;
     public static void main(String[] args) throws Exception {

     String SOAPUrl      = args[0];
     String xmlFile2Send = args[1];*/

     String SOAPUrl      = "http://10.153.219.88:8011/celg-svcs-soap/business/ApplicantEligibility";
     String xmlFile2Send = 
    "C:\\Users\\dkrishnamoorthy\\workspace\\SOAPUI_Automation\\src\\ApplicantElligibilty.xml";

          String SOAPAction = "";
        if (args.length  > 2) 
                SOAPAction = args[2];

        // Create the connection where we're going to send the file.
        URL url = new URL(SOAPUrl);
        URLConnection connection = url.openConnection();
        //URLConnection connection = new URLConnection(url);

        httpConn = (HttpURLConnection) connection;

        if(httpConn.getResponseCode()==500)
        {
            System.out.println("Error Stream for 500 : "+httpConn.getErrorStream());
        }

        // Open the input file. After we copy it to a byte array, we can see
        // how big it is so that we can set the HTTP Cotent-Length
        // property. (See complete e-mail below for more on this.)

        FileInputStream fin = new FileInputStream(xmlFile2Send);

        ByteArrayOutputStream bout = new ByteArrayOutputStream();

        // Copy the SOAP file to the open connection.
        copy(fin,bout);
        fin.close();

        byte[] b = bout.toByteArray();

        // Set the appropriate HTTP parameters.
        httpConn.setRequestProperty( "Content-Length",
                                     String.valueOf( b.length ) );
        httpConn.setRequestProperty("Content-Type","text/xml; charset=utf-8");
          httpConn.setRequestProperty("SOAPAction",SOAPAction);
        httpConn.setRequestMethod( "POST" );
        httpConn.setDoOutput(true);
        httpConn.setDoInput(true);

      //  httpConn.connect();

        // Everything's set up; send the XML that was read in to b.
        OutputStream out = httpConn.getOutputStream();
        out.write( b );    
        out.close();

        // Read the response and write it to standard out.

        InputStreamReader isr =
            new InputStreamReader(httpConn.getInputStream());
        BufferedReader in = new BufferedReader(isr);

        String inputLine;
        System.out.println("Printing the Response ");

        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);

        in.close();
    }

  public static void copy(InputStream in, OutputStream out) 
   throws IOException {


    synchronized (in) {
      synchronized (out) {

        byte[] buffer = new byte[256];
        while (true) {
          int bytesRead = in.read(buffer);
          if (bytesRead == -1) break;
          out.write(buffer, 0, bytesRead);
        }
      }
    }
  } 
}

最佳答案

如果你使用的是eclipse版本,只需重新启动它即可。我遇到了同样的问题,我通过这样做解决了。

关于java - 线程中的异常 "main"java.lang.IllegalStateException : Already connected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27112024/

相关文章:

java - 收到异常 "SSLPeerUnverifiedException: peer not authenticated",我该如何避免/忽略它?

java - 添加蓝牙连接代码后 Android Studio 应用程序崩溃

php - URL 未正确显示在浏览器地址栏中

url - 南希导航到没有斜杠的 URL?

cocoa - stringByAppendingPathComponent 中的基础错误?

java - 如何从 void 方法传递变量?

java - Spring Boot - 如何从多模块项目中的姐妹模块启动我的 Spring Boot 应用程序?

.htaccess - 如何使用 ssl 包含相对 url

url - 技术术语 - URL 路径类型 : Absolute, 相对,以及

java - 如何在处理数据时禁用按钮并更改按钮名称