我的代码来自服务器jsp am访问客户机中的另一个jsp,这是客户端机器和服务器之间的完美通信,在我的办公室网络中没有任何问题。但是当我的服务器jsp在我的网络中的外部办公室(另一个网络)和客户端机器时,相同的代码,在服务器日志中获得连接超时异常。 当我通过ajax调用连接到客户端机器时,我能够从客户端获得响应。我的代码在下面。有人澄清了这个问题吗?
服务器jsp中的java代码:
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();
服务器jsp中的ajax代码正在运行:
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 :(得分:0)
首先,确保您已连接到Internet。然后将连接时间更改为零,即infinte:
servletConnection.setConnectTimeout(0);
//Set read time out to zero if required
servletConnection.setReadTimeout(0);