日期:2014-05-19  浏览次数:20759 次

java.net.SocketTimeoutException 问题
我想判断一个服务器上面的方法是否能连接上,所有我就远程调用了一下那个服务器上的方法。

但是当这个服务器不存在时控制台报一个  验证码为:1:java.net.SocketTimeoutException: Read timed out  错误。

我想将这个错误捕获到。然后在经行操作。

 但是上面显示我catch (SocketTimeoutException  e)这段有错。

我将代码发出来给大家看看。帮忙找找问题

static PHPRPC_Client client = null;

/**
 * 判断文件转换服务器是否存在
 * User:zhaozhijun
 * @return
 */
public boolean isclient() throws IOException{
boolean bo=true;
try{
Object obj="";
client = new PHPRPC_Client(Constants._CONVERTADDR+"/remote/RemoteCallService");
client.setTimeout(30000);
obj = client.invoke("generationVcode", new Object[] { NetTools.getAllLocalHostIP()[0] }, true);

String validate="";
if(obj!=null){
validate= Cast.toString(obj);
}
logger.debug("验证码为:" + validate);
// 判断验证码是否获取成功
if(validate.length()!=6){
return false;
}
if (validate.equals("error") || validate.equals("404:Not Found") || validate.equals(""))
return false;

}catch (SocketTimeoutException  e) {
bo=false;
e.printStackTrace();
logger.error("连接文件转换服务器超时!"+e);
}catch (Exception e) {
bo=false;
e.printStackTrace();
logger.error("判断文件转换服务器是否存在出错!!"+e);
}
return bo;
}



------最佳解决方案--------------------
是这样写 抓个图我看最好 看eclipse提示什么
------其他解决方案--------------------
应该没错 你抓个图看看呢 我copy了你的代码到工程里因为缺少些对象 全是错。

看是不是你什么包没导入
------其他解决方案--------------------
不好意思啊! 不会抓图 反正就是

try{

}catch (SocketTimeoutException  e) {
bo=false;
e.printStackTrace();
logger.error("连接文件转换服务器超时!"+e);
}

时, 这行 catch (SocketTimeoutException  e)   报错  已经导包了 还是一样
------其他解决方案--------------------
可能是我描述的不够清楚。
 我要的目的是将java.net.SocketTimeoutException  这个异常捕获
很简单的一个问题。
只需要加一个try{}catch(){}就行了,但是就是我加上了这个try{}catch(){}后,Myeclipse在SocketTimeoutException这段话下面出现了一个红色下划线,  不是没导包的问题。
难道抛出SocketTimeoutException异常不是这么写的吗?
------其他解决方案--------------------
问题解决了,结题
------其他解决方案--------------------
LZ能说下你是怎么解决的嘛?谢谢!
------其他解决方案--------------------
你的那个问题是怎么解决的啊
------其他解决方案--------------------
求求  应急