docker - 无法使用Docker容器连接到Oracle数据库

标签 docker docker-compose boot2docker docker-machine docker-registry

我将应用程序作为EAR文件部署到Webspehre自由服务器上的Docker容器中。

但是,当应用程序运行时,它无法连接到在另一台主机上运行的Oracle数据库,在该主机上,我们试图通过Websphere自由的server.xml中定义的jndi查找进行连接。

<dataSource id="oracle" jndiName="jdbc/QADBApp" type="javax.sql.Datasource">

<jdbcDriver libraryRef="OracleJDBCLib"/>

<properties.oracle URL="jdbc:oracle:thin:@//xyz.mycomany.com:1521/prexyz" username="****" password="****" />

我们能够从容器内部ping服务器并获得响应,但是在运行时,它无法建立数据库连接。

注意:-Oracle DB未容器化。如上所述,我们只是在尝试通过jndi查找来建立连接。

下面是错误消息。在这种情况下,任何人都可以提供有关如何连接数据库的帮助吗?谢谢!
[ERROR ] Context initialization failed
Error creating bean with name 'myappFacade': Injection of autowired dependencies failed; nested exception is      org.springframework.beans.factory.BeanCreationException: Could not autowire field: private transient com.mycompany.myappTool.service.util.HibernateUtil com.mycompany.myappTool.service.facade.myappToolFacade.hibernateUtil; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateUtil' defined in file [/opt/ibm/wlp/usr/servers/defaultServer/apps/expanded/myapp.ear/myappTool.war/WEB-INF/classes/com/mycompany/myappTool/service/util/HibernateUtil.class]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: com.mycompany.myappTool.service.util.HibernateUtil (initialization failure)
[ERROR ] SRVE0271E: Uncaught init() exception created by servlet [myapp] in application [myapp]: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myappFacade': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private transient com.mycompany.myappTool.service.util.HibernateUtil com.mycompany.myappTool.service.facade.myappToolFacade.hibernateUtil; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateUtil' defined in file [/opt/ibm/wlp/usr/servers/defaultServer/apps/expanded/myapp.ear/myappTool.war/WEB-INF/classes/com/mycompany/myappTool/service/util/HibernateUtil.class]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: com.mycompany.myappTool.service.util.HibernateUtil (initialization failure)

最佳答案

您可以尝试使用IP地址代替xyz.mycomany.com:1521吗?绝对是网络问题,您可能需要浏览https://docs.docker.com/engine/userguide/networking/default_network/
您也可以从容器cat / etc / hosts内部尝试
它应该列出您要连接的IP /机器。

关于docker - 无法使用Docker容器连接到Oracle数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40597193/

相关文章:

docker - Docker-compose 中的 Payara 服务器

docker - Boot2Docker 管理端口和打开 Web 应用程序

python - 如何更新定制的 python docker 镜像

mysql - 如何使用 Docker compose 修复“"Table ' Performance_schema.session_variables”不存在”?

docker - boot2docker 主机绑定(bind)挂载卷大小限制为 1.8 GB

Docker-compose --exit-code-from 被忽略

mongodb - 无法连接到 Dockerized MongoDb 服务器 - 绑定(bind) ip - 没有机会授权

sql-server - 为什么无法将我的 .net 核心容器连接到 SQL Server docker 容器?

networking - Docker EXPOSE 与命令行 -p 选项(boot2docker)

Docker:如何修复 "Layer already being pulled by another client. Waiting"