使用JSP程序连接到oracle数据库时获取异常

时间:2018-11-23 06:45:55

标签: jsp docker

我已经创建了一个jsp程序,并在tomcat docker中添加了它,而在本地桌面上进行测试时却遇到了异常。

  

java.sql.SQLRecoverableException:IO错误:网络适配器可能   无法建立连接。

我正在使用oracle数据库12c泊坞窗。

首先,我在堆栈文件下面创建了一个文件。

堆栈文件:

version: "3.7"
services:
  oracle:
    image: sath89/oracle-12c:latest
    ports:
      - "8080:8080"
      - "1521:1521"
    stop_grace_period: 1m0s
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
        max_attempts: 3
    networks:
      - fronter
  jsp:
    image: bitroid/jsp-db-docker
    ports:
      - "8888:8080"
    networks:
      - fronter
    depends_on:
      - oracle
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
        max_attempts: 3
networks:
  fronter:

在创建了上面的堆栈文件后,我使用下面的命令在本地系统中部署docker。

$ docker stack deploy jsp_oracle -c pwdcmdstack.yml

并且在部署后,我使用以下脚本配置了oracle数据库docker。

docker exec -it --user root jsp_oracle_oracle.1.zqz4r7k4x1cxdagh9fj415u5p /bin/bash -c "apt-get update -y;apt-get install git -y --force-yes"

docker exec -it --user root jsp_oracle_oracle.1.zqz4r7k4x1cxdagh9fj415u5p /bin/bash -c "git clone https://github.com/hemanth22/Oracle_database.git"

docker exec -it --user root jsp_oracle_oracle.1.zqz4r7k4x1cxdagh9fj415u5p /bin/bash -c "chmod -R 777 Oracle_database;cd /Oracle_database;ls -la"

docker exec -it --user oracle jsp_oracle_oracle.1.zqz4r7k4x1cxdagh9fj415u5p /bin/bash -c "netstat -nlpt"

docker exec -it --user oracle jsp_oracle_oracle.1.zqz4r7k4x1cxdagh9fj415u5p /bin/bash -c "ls && cd Oracle_database && ls && bash login.sh"

您能检查一下并提出建议如何乘坐java.sql.SQLRecoverableException

感谢和问候, 灵气。

1 个答案:

答案 0 :(得分:0)

原因: 当Oracle服务器上的防火墙存在某些问题时,会发生此错误。
解: 为解决此问题,请确保防火墙从网络的两侧都打开,即Oracle数据库应该能够连接回ambari-server。并且在操作系统上,确保iptables或防火墙已停止或允许端口1521上的通信。

参考:https://community.hortonworks.com/content/supportkb/150193/io-error-the-network-adapter-could-not-establish-t.html