URLConnection Klasse java.net.ConnectException: Connection refused: connect

Ich bin Programmierung in einem system mit client läuft das Java-Applet auf der einen und server auf der anderen. Jetzt habe ich den client und server auf dem gleichen computer. Aber als Kunde kann ich das applet, und ich bekomme Fehler wie unten:

        java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.net.NetworkClient.doConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.<init>(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
    at MainJApplet.init(MainJApplet.java:58)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.net.NetworkClient.doConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.<init>(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
    at RequestServer.sendRequest(RequestServer.java:25)
    at createGUI.createEditingBar(createGUI.java:1313)
    at GUI.createAndShowGUI(GUI.java:813)
    at MainJApplet.init(MainJApplet.java:137)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
java.net.ConnectException: Connection refused: connect
java.lang.NullPointerException
    at createGUI.createEditingBar(createGUI.java:1315)
    at GUI.createAndShowGUI(GUI.java:813)
    at MainJApplet.init(MainJApplet.java:137)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Exception: java.lang.NullPointerException

Unten ist, wo das problem zurückverfolgen:

URL url = new URL(ipAddr);
URLConnection connection = url.openConnection();

connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream()); //exception happens

Habe ich überprüft http://localhost:8080/ und port-Konflikt. Ich habe die windows-firewall zu deaktivieren und trotzdem besteht das problem. Kann jemand freundlicherweise zeigen Sie mir eine Richtung? Jede Beratung wäre toll! Dank Voraus!

Ich entschuldige mich für den langen code. Die erste ist für den Kunden.

import javax.swing.*;
import java.awt.*;
import java.net.*;
import java.io.*;

public class MainJApplet extends JApplet {

    GUI gui = new GUI();
    Thread renewThread;

    public void init() {
        //pass parameters from url to applet
        String filePath = this.getParameter("FilePath");
        //temporary solution to bypass the new extention
        String userName = this.getParameter("UserName");
        String ipAddr = this.getParameter("IpAddress");
        String userLevel = this.getParameter("UserLevel");
        String ticket = this.getParameter("Ticket");
        String accessMode = this.getParameter("AccessMode"); //1-normal 2-shared 3-email

        //sharedTo will be get from the file path infor
        String sharedTo = this.getParameter("ShareTo");
        String type = this.getParameter("Type");

        gui.shareTo = sharedTo;
        gui.ticket = ticket; //this gui.ticket is used to varify email access, will be replaced

        String relativePath = "";
        try {
            //connect to servlet

            URL url = new URL(ipAddr);
            URLConnection connection = url.openConnection();

            connection.setDoOutput(true);
            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
            //Passing NAME+FILE+TICKET+TYPE to server at the initialization stage
            out.write("IN");
            out.write(userName + "#");
            out.write(filePath + "#");
            out.write(ticket + "#");
            out.write(type + "#");
            out.close();

            //Wait for server response
            BufferedReader in = new BufferedReader(
                    new InputStreamReader(
                    connection.getInputStream()));

            String dcodedStr;
            StringBuffer decodedStringBuffer = new StringBuffer("");
            while ((dcodedStr = in.readLine()) != null) {
                decodedStringBuffer.append(dcodedStr);
            }

            String dStr = decodedStringBuffer.toString();
            in.close();

            if (dStr.equals("NOT_AUTHORIZED")) { //not passing authentication check
                JOptionPane.showMessageDialog(new JFrame(),
                        "Access Denied",
                        "Warning!",
                        JOptionPane.ERROR_MESSAGE);
                return;
            } else {//pass authentication check
                String[] initResp = dStr.split("#");
                gui.FID = initResp[0]; //file ID
                gui.EditMode = Boolean.parseBoolean(initResp[1]);
                gui.userLevel = 1; //temporary set all as normal user
                boolean firstOpen = Boolean.parseBoolean(initResp[2]);
                relativePath = initResp[3];
                if (initResp[4].trim().equals("normal")) {//owner
                    gui.accessMode = 1;
                } else {//shared user
                    gui.accessMode = 2;
                }
            }
        }catch(UnknownServiceException exp){
            exp.printStackTrace();
        }catch(IOException ex){
            ex.printStackTrace();
        }catch (Exception e) {
            e.printStackTrace();
        }
}

    public void destroy() {
        gui.check_upon_window_close();

        if (gui.is_new_drawing == 0) {
            //2010.9.29 workDir -> FID
            if (gui.EditMode) {
                RequestServer.canClose(gui.IpAddress, gui.user, gui.FID);
            } else {
                RequestServer.canCloseNoEdit(gui.IpAddress, gui.user, gui.FID);
            }
        }
        renewThread.stop();
    }
}
Ich würde beginnen Sie mit der überprüfung der Netzwerkverbindung zum server.
Poste bitte den code, der erzeugt diese exception. Auch post ServerSocket verbindlichen Verhaltenskodex.
OP sagt, dass client und server laufen auf demselben host.
so blöd wie es klingt: was ist der Wert von ipAddr zur Laufzeit?
Hi Hippo, bedeuten Sie, ping für die ip-Adresse? Da ich den client und server auf demselben computer, so ist es wahrscheinlich, um immer in der Lage sein zu verbinden. Und "telnet" kann nicht erkannt werden, im windows system.... Irgendwelche anderen Vorschläge? Oder mache ich falsch?

InformationsquelleAutor Veronica | 2011-12-29

Schreibe einen Kommentar