Tag: hibernate

ERROR org.hibernate.util.JDBCExceptionReporter – 无法创buildPoolableConnectionFactory

我的web应用程序在localhost上运行良好,但在将localhost更改为XX.X.XX.X(即hibernate.properties中的docker的ip)后,出现以下错误 AbandonedObjectPool被使用 (org.apache.commons.dbcp.AbandonedObjectPool@66d1439c) LogAbandoned:true RemoveAbandoned:true RemoveAbandonedTimeout:90 进入XX.X.XX.X:1112 /学生的login页面或主页来,但login后,我得到以下错误在命令提示符(从我从哪里开始tomcat) 57521 [http-apr-8080-exec-11] ERROR org.hibernate.util.JDBCExceptionReporter – 无法创buildPoolableConnectionFactory 57522 [http-apr-8080-exec-11] ERROR org.hibernate.util.JDBCExceptionReporter – 无法创buildPoolableConnectionFactory 用于启动tomcat服务器的命令是docker run -it –rm -p 7008:8080 -v //d/docker_tomcat/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml:ro -v // d / docker_tomcat / webapps:/ usr / local / tomcat / webapps:rw tomcat:7.0 上面的命令我确信没有问题。 这里是我的hibernate.properties文件: – hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.username=root hibernate.connection.password=root hibernate.connection.url=jdbc:mysql://<ip of docker>:3306/studentdb?autoreconnect=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false show_sql=false hibernate.jdbc.use_streams_for_binary=false […]

在部署期间将数据保持在embedded式数据

我正在考虑一个架构,我在一个Docker容器中运行的JBOSS上部署一个JavaEE Web应用程序。 机器:docker(linux) web服务器:jboss 框架:vaadin + jpa + hibernate 数据库:(这是我的问题) 由于这是一个非常简单的应用程序,我正在考虑使用像derby或h2这样的embedded式数据库。 但是,如果需要部署此应用程序的新版本,则必须保留数据库内的数据。 所以,这是一个相当愚蠢的问题,但我需要确认我的假设是正确的。 假设(正确与否): 如果停止docker机并重新启动,数据将会丢失。 如果我保持Docker容器运行并部署新版本的* .WAR文件,则不会丢失任何数据 我可以创build一个sql脚本在启动时运行并填充数据库,但所有用户生成的数据都将丢失。

是否有可能在docker mysql运行容器以及windows 10 mysql中使用3306端口(相同的端口)

我在tomcat 7中部署我的war文件并使用以下命令启动tomcat docker run -it –rm -p 7008:8080 -v //d/docker_tomcat/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml:ro -v //d/docker_tomcat/webapps:/usr/local/tomcat/webapps:rw tomcat:7.0 当tomcat启动时,它显示以下错误日志: 使用AbandonedObjectPool(org.apache.commons.dbcp.AbandonedObjectPool@9030ca2) LogAbandoned:true RemoveAbandoned:true RemoveAbandonedTimeout:90 [localhost-startStop-1]错误org.hibernate.util.JDBCExceptionReporter – 无法创buildPoolableConnectionFactory 我认为上面的错误意味着数据库studentdb不可访问 这里是我的hibernate.properties文件: – hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.username=root hibernate.connection.password=root hibernate.connection.url=jdbc:mysql://10.0.75.x<ip of docker>:3306/studentdb?autoreconnect=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false show_sql=false hibernate.jdbc.use_streams_for_binary=false hibernate.dbcp.testOnBorrow=true hibernate.dbcp.validationQuery=SELECT 1 FROM DUAL hibernate.dbcp.testOnReturn=false hibernate.dbcp.maxWait=2000 hibernate.dbcp.testWhileIdle=true hibernate.dbcp.minEvictableIdleTimeMillis=1800000 hibernate.dbcp.timeBetweenEvictionRunsMillis=300000 hibernate.dbcp.numTestsPerEvictionRun=5 hibernate.dbcp.removeAbandoned=true hibernate.dbcp.removeAbandonedTimeout=90 hibernate.dbcp.logAbandoned=true 我认为hibernate.properties文件的hibernate.connection.url属性可能有错误。 也怀疑是因为我的Windows 10使用端口3306为MySQL以及docker也使用端口3306为MySQL。 如果是它的问题,那么我怎么能改变端口在运行在docker与一些不同的端口的MySQL容器

从另一个docker集装箱连接到数据库

我跑了两个docker集装箱,一个是tomcat,一个是phpmyadmin。 我用这个命令运行了phpmyadmin容器: docker run -d -p 49160:22 -p 49161:80 -p 49162:3306 –name db phpmyadmin:imported 我可以在端口49161上的浏览器上看到phpmyadmin。我用这个命令运行了tomcat容器 docker run -it -v ~/docker/tomcat/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml –name tomcat –link db:server -p 8888:8080 tomcat:deployed 每件事看起来都很好。 我可以从tomcat容器中ping数据库。 但是当我尝试连接到它使用hibernate和我的J2EE应用程序时,我得到以下错误。 10-Jun-2015 19:20:12.293 WARNING [http-nio-8080-exec-15] org.hibernate.cfg.SettingsFactory.buildSettings Could not obtain connection metadata java.sql.SQLException: Connections could not be acquired from the underlying database! at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:118) at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:690) at […]

如何在Docker环境下使用Mysql启动Aerogear统一推送服务器

我正努力在一个有mysql数据库的docker环境中启动aerogear统一推送服务器。 我在这里跟随Aerogear文件 。 所以我开始了一个mysql docker容器 docker run –name aerogearsql -e MYSQL_ROOT_PASSWORD=sqlpwd -d mysql 我已经在这些文件中应用了什么 docker exec -ti aerogearsql -u root -p mysql> create database unifiedpush default character set = "UTF8" default collate = "utf8_general_ci"; mysql> create user 'unifiedpush'@'localhost' identified by 'unifiedpush'; mysql> GRANT SELECT,INSERT,UPDATE,ALTER,DELETE,CREATE,DROP ON unifiedpush.* TO 'unifiedpush'@'localhost'; 然后,我使用下面的docker文件准备了一个泊坞窗图像,应用了aerogear文档中的内容。 这是docker文件 FROM jboss/wildfly MAINTAINER yves.nicolas@dynamease.com ENV […]

在Docker中引发exception'hibernate.dialect'未设置

我正在使用spring引导来开发一个应用程序,我正在使用mysql作为database.I在application.properties中有以下configuration。 server.port=8090 spring.datasource.url=jdbc:mysql://mysql:3306/sampleDB spring.datasource.username=root spring.datasource.password= spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQLDialect spring.hibernate.dialect=org.hibernate.dialect.MySQLDialect spring.jpa.hibernate.show_sql=true spring.jpa.hibernate.ddl-auto=update spring.jpa.temp.use_jdbc_metadata_defaults=false logging.file=employee.log spring.datasource.testOnBorrow=true spring.datasource.validationQuery=SELECT 1 我在本地有各自的数据库,它在我的本地工作。 但是,只要我创build一个docker图像和链接到我的MySQLdocker容器它抛出以下exception。 org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set 这个集装箱甚至连build筑物都没有。 sudo docker run –name bootApp -d –link mysql:mysql springio/employeesecurity 其中springio / employeesecurity是我的springBoot docker名称,而mysql是我的msql容器。

用于云部署的Hibernate数据库configuration

我对云计算和微服务相对比较陌生。 我知道aws ec2 , ansible和docker swarm这样的技术如何在云中提供和创build一个服务集群,但是我不知道如何configuration云环境的软件(当不同服务的连接参数是IP未知,直到部署)。 我习惯于使用裸机环境和静态IP地址进行Spring启动和hibernate,在此将代码服务地址作为pom.xml中的属性,并根据此特定环境的configuration文件将其注入到各种configuration文件中。 最后,一切都是硬编码的地方。 现在考虑一下情况,我将从云中调配环境的整个过程自动化,并使用一个可靠的脚本等来部署软件,服务和数据库。 这个过程会给我带有随机IP的服务器实例。 它将在一次运行中部署所有必要的基础设施组件。 现在,在编译时服务位置未知的情况下,如何configuration软件(数据库连接等)呢? 我应该使用DNS吗? 如果我这样做,那么当我部署到不同的云时会发生什么? 有没有更多的dynamic的方式来configurationDocker群上的云环境的Spring应用程序,也许是利用swarm在覆盖networking上pipe理的一些环境variables? 或者,当我在想象中想象的时候,尝试咬下太多蛋糕,通过云平台和正确的工具,可以将整个基础架构部署到任何环境,只需点击一下,从编译到function,容错服务任何硬编码,一切都自动化?

将Tomcat容器连接到mysql容器:JDBCConnectionException:无法获取JDBC连接

我试图将使用Hibernate,XAMPP for Apache tomcat和mysql服务器在Windows上创build的Web应用程序移植到Linux,使用Docker。 我已经部署我的战争文件在tomcat容器上的webapps文件夹下,链接到mysql容器…事实是,我的web应用程序非常非常慢:即,第一个function是login/注册forms:在Linux上,大约几分钟! 我已经使用以下命令创build了容器: docker run -d –name mysql-phpmyadmin -p 127.0.0.1:8686:80 -p 127.0.0.1:3306:3306 grzesiekb/mysql-phpmyadmin docker run -d -p 8484:8080 -p 8007:8009 –name tomcat8-linked –link mysql-phpmyadmin:mysqlphp tomcat:8.0-jre8 这是我的hibernate.cfg.xml文件: <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!– queste configurazioni sono per il testing in locale –> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://mysqlphp:3306/at_db</property> <property name="hibernate.connection.username">root</property> […]

如何configurationHibernate ORM数据库属性以使用Docker

为了连接到数据库,我使用了一个networking套接字,在我的hibernate.cfg.xml指定为: <property name="connection.url">jdbc:postgresql://localhost:PORT/DBNAME</property> 以及用户名,密码: <property name="connection.username">user</property> <property name="connection.password">pass</property> 我想使用docker进行部署。 我的问题是,目前我必须更改源代码(例如hibernate.cfg.xml),并重新生成一个新的.war文件,每次我想重新部署。 有没有办法避免这种情况? 我可以使用相同的.war文件并从dockerdynamic链接到数据库吗? 我想我可以有一个configuration文件(如.env),将包含数据库的凭据,并有Java和docker阅读这一点,但我现在不configurationdocker这样做