IO 异常:The Network Adapter could not establish the connection 怎么解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO 异常:The Network Adapter could not establish the connection 怎么解决相关的知识,希望对你有一定的参考价值。
IO一
这种异常的出现大致上有下面几种:1。IP错误。
在设置URL时错误,例如:jdbc:oracle:thin:@192.168.0.36:1521:sharp
数据库服务器不正确:ping 服务器IP是否正确。不正确,将URL更改为正确
端口号错误:一般不会错误。
进行一下操作:在DOS上键入sqlplus,检查oracle是否开启
一却正常,执行下面第2步。
2。防火墙
如果机器上安装有放火墙,可能是服务器端口号屏蔽而造成的。关闭防火墙后,尝试重新连接。
仍然不行,执行第3步。
3。数据库监听未启动 修改PC上注册表中的ImagePath值。
我下面以现在主流的数据库ORACLE为例
重新手动启动数据库监听:
1:开始 → 运行→ 输入CMD→ 进入DOS命令提示界面
d:>lsnrctl
LSNRCTL> status
或者
LSNRCTL> start
如果是类似图片中的信息
恭喜,你的问题已经查找出来,是数据库监听器没未启动而造成的。
以下是手动启动数据库的方法:
在运行处执行regedit进入注册表到
开始 →运行→ regedit
按下面路径
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome90TNSListener
找到OracleOraHome90TNSListener(我用的是Oracle9i 其他的版本的应该是OracleOraHomexxxTNSListener)
找到之后你会发现ImagePath关键值不存在了,创建它:(存在的话,点击修改,修改方法在下文有介绍)
右键单击,弹出菜单选择新键(N)→字符串值(S)
将其命名为ImagePath
选中ImagePath点右键,选中修改:
在值中输入你的Oracle安装目录\ora90(其他本对应的是oraxxx目录)\bin\tnslsnr
如果是ORACLE 10G则安装目录为F:\oracle\product\10.1.0\Db_2\BIN\tnslsnr
确定后退出注册表:
再在DOS命令下键入start
如果出现下面画面,恭喜你,监听器启动成功:
关闭DOS,启动你的程序进行测试,应该恢复正常了。
以上就是3中常见的引发The Network Adapter could not establish the connection 异常的原因
主要原因:1.可能是server.xml文件的DataSource配置出错。(1).如果用到的是本机上的数据,本地数据源里的部分配置为: username="pcisv62" password="11" url="jdbc:oracle:thin:@localhost:1521:orcl"
(2).如果用到的是服务器上的数据,则数据源里的部分配置为: username="pcisv62" password="11" url="jdbc:oracle:thin:@dbserver:1521:corev6"(dbserver为服务器的名字,corev6为服务器上Oracle的SID)2.可能是oracle的tnsnames.ora文件配置出错。oracle的安装目录E:\oracle\ora92\network\admin下的tnsnames.ora:
本地配置:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 主机名)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
或服务器配置:
COREV6_DBSERVER =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
)
(CONNECT_DATA =
(SID = COREV6)
(SERVER = DEDICATED)
)
)
关于 The Network Adapter could not establish the connection 异常的一点说明:
在实际中碰到 通过pl/sql developer去连很正常。 参考技术A
两种方法:
1.出现异常的代码所在的方法前throws IOException
public void test() throws IOException
BufferedReader bu = new BufferedReader(
new InputStreamReader(System.in));
String str = bu.readLine();
2.用try-catch扑捉
public void test()
BufferedReader bu = new BufferedReader(
new InputStreamReader(System.in));
try
String str = bu.readLine();
catch (IOException e)
e.printStackTrace();
IO错误是指输入输出错误,属于系统错误。IO是指input/output,在电脑系统中负责信息的输入与输出。
IO出现错误可能得原因如下:
1、系统配置错误
2、设备接口接触不良
3、I/O设备损坏
现在能帮忙看下吗 搞了好久了 不知道怎么弄 远程操作下
追答我没法帮你,我用的不是window系统
adapter结构异常记录
adapter结构异常记录,记录在这个类里,记录数据日志,在148行:
com.creditharmony.adapter.core.service.GeneralHttpService
package com.creditharmony.adapter.core.service; import java.util.Properties; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import com.creditharmony.apporveadapter.bean.BaseInfo; import com.creditharmony.apporveadapter.bean.BaseOutInfo; import com.creditharmony.apporveadapter.bean.GeneralHttpInfoModel; import com.creditharmony.apporveadapter.bean.GeneralReturnInfo; import com.creditharmony.adapter.constant.Constant; import com.creditharmony.apporveadapter.constant.ErrorType; import com.creditharmony.adapter.constant.MsgKey; import com.creditharmony.apporveadapter.exception.AdapterException; import com.creditharmony.adapter.utils.AdapterUtils; import com.creditharmony.adapter.utils.Messages; import com.creditharmony.common.util.PropertyUtil; import com.creditharmony.common.util.SpringContextHolder; /** * @Class Name GeneralHttpService * @author yourname * @Create In 2016年12月3日 */ @Controller public class GeneralHttpService { /** 业务挡板测试区分名. */ private static final String BAFFLE_FIX = "_Baffle"; /** 日志. */ private static final Logger logger = Logger.getLogger(GeneralHttpService.class); /** 属性文件. */ static Properties properties = PropertyUtil.getProperties(Constant.CONFIG_PROPERTY); /** HttpServletRequest. */ @Autowired private HttpServletRequest request; /** 参数记录处理. */ @Autowired private IParamRecord paramRecord; /** * Client端调用统一接口. * 实现分发器效果 * * @param paramObj 调用参数 * @return 返回参数 */ @ResponseBody @RequestMapping(value = "http/generalHttpService", method = RequestMethod.POST) public String exec(@RequestParam("content") String content) { // 取得唯一序列号 String serialNum = AdapterUtils.getSerialNum(); // 获得调用客户端IP地址 String clientIp = getClientIP(request, serialNum); // 大金融的报文转为Model对象 GeneralHttpInfoModel paramObj = JSON.parseObject(content, GeneralHttpInfoModel.class); logger.info(Messages.get(MsgKey.GENERALSERVICE_INPARAM, new String[] { content })); // 参数日志记录: 传入参数 paramRecord.doInParamRecord( serialNum, content, clientIp, paramObj.getServiceName()); // 取得业务参数Json String paramStr = paramObj.getParam(); logger.info(Messages.get(MsgKey.GENERALSERVICE_INPARAM, new String[] { paramStr })); // 参数日志记录: 传入参数 paramRecord.doInParamRecord( serialNum, paramStr, clientIp, paramObj.getServiceName()); /* * 处理:取得业务实现类 * 利用传入的serviceName,通过反射方式取得该业务实际类 */ IBaseService baseService = this.initService(paramObj.getServiceName()); /* * 处理:调用实际业务处理 * 通过父类抽象方法调用实现子类具体业务调用 */ GeneralReturnInfo out = new GeneralReturnInfo(); BaseOutInfo outParam = null; // 返回对象参数 String outParamStr = ""; try { // 将传入的JSON报文转为Bean对象 BaseInfo inBean = (BaseInfo) JSON.parseObject(paramStr, doCreatInObject(paramObj.getInClassName()).getClass()); inBean.setSerialNum(serialNum); outParam = baseService.exec(inBean); out.setOutParam(JSON.toJSONString(outParam, SerializerFeature.WriteMapNullValue)); outParamStr = JSON.toJSONString(out, SerializerFeature.WriteMapNullValue); /* * 处理:返回参数记录处理. */ paramRecord.doOutParamRecord( serialNum, outParamStr); logger.info(Messages.get(MsgKey.GENERALSERVICE_OUTPARAM, new String[] { outParamStr })); } catch (Exception e) { boolean isNewExeption = e instanceof AdapterException; AdapterException businessException = null; // 将新产生的例外封装 if (isNewExeption == false) { businessException = new AdapterException(ErrorType.BUSSINESS_ERROR, e, "接口服务端产生异常."); } else { businessException = (AdapterException) e; } out.setErrorType(businessException.getErrorType()); out.setErrorMsg(businessException.getMessage()); out.setBaseOutInfo(businessException.getInfoOutObj()); StringBuilder paramSb = new StringBuilder(); // 取得返回对象日志 paramSb.append("errorType=").append(out.getErrorType()) .append(", errorMsg=").append(out.getErrorMsg()); outParamStr = paramSb.toString(); /* * 处理:异常错误记录处理. */ logger.error(Messages.get( MsgKey.ERROR_SYSTEM_STACK, new String[] { businessException.getExceptionStackTrace() })); paramRecord.doExceptionRecord(serialNum, businessException); /* * 处理:返回参数记录处理. */ paramRecord.doOutParamRecord( serialNum, outParamStr); logger.info(Messages.get(MsgKey.GENERALSERVICE_OUTPARAM, new String[] { outParamStr })); } return outParamStr; } /** * 反射传入Bean对象. * @param className 传入Bean包名+类名 * @return Bean对象 */ private Object doCreatInObject(String className) { Object obj = null; try { Class<?> c = Class.forName(className); obj = c.newInstance(); } catch (Exception e) { e.printStackTrace(); } return obj; } /** * 获取客户端IP地址. * * @param serialNum 请求唯一序列号 * @return IP地址 */ private String getClientIP(HttpServletRequest request, String serialNum) { try { if (request.getHeader("x-forwarded-for") == null) { return request.getRemoteAddr(); } return request.getHeader("x-forwarded-for"); } catch (Exception e) { // 异常错误记录 AdapterException businessException = new AdapterException(e); paramRecord.doExceptionRecord(serialNum, businessException); } return ""; } /** * 业务处理类实现. * 通过反射,实现业务对象 * @param serviceName 业务实现类名 * @return 业务实现类 */ private IBaseService initService(String serviceName) { String serviceId = ""; boolean isBaffle = Boolean.parseBoolean(properties.getProperty(serviceName + BAFFLE_FIX)); // true的场合, 运行挡板程序 if (isBaffle) { // 测试挡板程序 serviceId = serviceName + BAFFLE_FIX; } else { serviceId = serviceName; } IBaseService baseService = SpringContextHolder.getBean(serviceId); return baseService; } }
以上是关于IO 异常:The Network Adapter could not establish the connection 怎么解决的主要内容,如果未能解决你的问题,请参考以下文章
oracle11g+tomcat 安装war包出错:IO 错误: The Network Adapter could not establish the connection
使用java程序连接数据库总报:The Network Adapter could not establish the connection plsql连接没问题
"vmware network adapter vmnet8" 未启用DHCP
我的虚拟机没有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8 怎么办?
Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter (rev 01)
windows 中使用hbase 异常:java.io.IOException: Could not locate executable nullinwinutils.exe in the Ha