2016-04-19 6 views
0

Mein Code stammt vom Server jsp, der auf ein anderes JSP zugreift, das sich auf dem Clientcomputer befindet und einwandfrei mit Clientcomputer und Server in meinem Büronetzwerk kommuniziert. Aber der gleiche Code, wenn mein Server jsp in einem externen Büro (ein anderes Netzwerk) und Client-Computer in meinem Netzwerk ist, bekomme Verbindung Ausnahmefehler in Server-Logs. Und wenn ich mit dem Client-Rechner durch Ajax Anruf verbinden, kann ich Antwortformular client.my Code erhalten unten ist.Verbindungstimeout beim Zugriff auf JSP mit URLConnection

Java-Code in Server jsp:

URL jspUrl = new URL("...../Test.jsp"); 
    URLConnection servletConnection = jspUrl.openConnection(); 
    servletConnection.setDoOutput(true); 
    servletConnection.setDoInput(true); 
    servletConnection.setUseCaches(true); 
    servletConnection.setDefaultUseCaches(true); 
    servletConnection.setRequestProperty("Content-Type", "application/x-java-serialized-object"); 
    OutputStream outputStream = servletConnection.getOutputStream(); 
    ObjectOutputStream outputToServlet = new ObjectOutputStream(outputStream); 
    outputToServlet.writeObject(object); 
    outputToServlet.flush(); 

    InputStream inputStream = servletConnection.getInputStream(); 
    ObjectInputStream outputFromServlet = new ObjectInputStream(inputStream); 
    readObject = outputFromServlet.readObject(); 
    outputFromServlet.close(); 
    outputToServlet.close(); 

Ajax Code in Server jsp, die funktioniert:

function callAjax 
{ 
    if(window.XMLHttpRequest) 
    { 
      reqObj=new XMLHttpRequest(); 
    } 
    else 
    { 
      reqObj=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    reqObj.onreadystatechange=processfunction; 
    reqObj.open("POST","./jspName.jsp?"+Id,false); 
    reqObj.send(null); 
} 

function processfunction() 
{ 
    try 
    { 
     if(reqObj.readyState==4) 
     { 
      if(reqObj.status == 200) 
      { 
       var responseString = reqObj.responseText; 

      } 
     } 
    } 
    catch(e) 
    { 
     //alert(e); 
    } 

} 
+0

Es ist keine Überraschung, Sie wissen bereits, warum es passiert, beide Maschinen sind in verschiedenen getrennten Netzwerken, wie Sie gesagt haben. – 11thdimension

+0

Aber kann ich mit Ajax Anruf richtig verbinden? Wenn der Fall ist, was Sie sagten, dann sollte es nicht mit Ajax auch funktionieren. –

+0

In Ihrem Beitrag haben Sie gesagt, dass Sie in der Lage sind, die Verbindung zu machen, wenn Server und Client in Ihrem Büro sind und nicht wenn Server außerhalb des Büros geht , können Sie den Ajax-Anruf tätigen, wenn sich der Server außerhalb des Büros befindet? – 11thdimension

Antwort

0

Zunächst einmal sicher, dass Sie mit dem Internet verbunden sind. Ändern Sie dann die Verbindungszeit auf Null. 0 din Infinite:

+0

Sie sagen, wie man das Verbindungszeitlimit behandelt, aber ich frage mich, warum ich diese Ausnahme bekomme und wie ich Daten von einem anderen Netzwerk-Client-Rechner mit dem oben erwähnten Java-Code bekomme. –

+0

Versuchen Sie, mit der öffentlichen IP-Adresse auf den Web-Service oder die Server-URL zuzugreifen. – Pehlaj

Verwandte Themen