トランザクション用にJPA EntityManagerを開けませんでした。ネストされた例外はjavax.persistence.PersistenceExceptionです
コードを実行すると、次の例外が発生します。
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:62)
at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:45)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:422)
at com.mysql.jdbc.Util.handleNewInstance(Util.Java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.Java:1121)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.Java:357)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.Java:2482)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.Java:2519)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.Java:2304)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.Java:834)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.Java:47)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:62)
at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:45)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:422)
at com.mysql.jdbc.Util.handleNewInstance(Util.Java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.Java:416)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.Java:346)
at Java.sql.DriverManager.getConnection(DriverManager.Java:664)
at Java.sql.DriverManager.getConnection(DriverManager.Java:208)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.Java:153)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.Java:144)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.Java:155)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.Java:120)
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.Java:139)
at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.Java:51)
at org.hibernate.tool.hbm2ddl.DatabaseExporter.<init>(DatabaseExporter.Java:52)
at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.Java:367)
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.Java:304)
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.Java:293)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.Java:517)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.Java:1857)
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Aug 25, 2015 8:23:45 PM com.Sun.jersey.spi.container.ContainerResponse mapMappableContainerException
SCHWERWIEGEND: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Could not open connection
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.Java:431)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.Java:373)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.Java:457)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.Java:276)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.Java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.Java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.Java:207)
at com.Sun.proxy.$Proxy76.create(Unknown Source)
どこに問題があるのかわかりません。しかし、昨日はうまくいきました。
私のdatabase.properties:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/streaming
jdbc.username=root
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.showsql=true
hibernate.hbm2ddl.auto=create
コマンドラインからmysqlを直接実行することは可能です。問題はどこにありますか?間違っていました。 Spring 4を使用し、データベース言語としてmysqlで休止状態にします。
誰かアイデアはありますか?
感謝。
CommunicationsException:Communications link failureがあります。
SQLExceptionが発生した場合:接続が拒否された、接続がタイムアウトした、またはMySQL固有
CommunicationsException: Communications link failure
それは、DBがまったく到達可能でないことを意味します。これには、次の1つ以上の原因が考えられます。
- JDBC URLのIPアドレスまたはホスト名が間違っています。
- JDBC URLのホスト名は、ローカルDNSサーバーによって認識されません。
- JDBC URLにポート番号が欠落しているか間違っています。
- DBサーバーがダウンしています。
- DBサーバーはTCP/IP接続を受け入れません。
- DBサーバーの接続が不足しています。
- JavaとDBが接続をブロックしていること(ファイアウォールやプロキシなど)。
どちらか一方を解決するには、次のアドバイスに従ってください。
- Pingでそれらを確認およびテストします。
- DNSを更新するか、代わりにJDBC URLのIPアドレスを使用してください。
- MySQL DBのmy.cnfに基づいて検証します。
- DBを起動します。
- --skip-networkingオプションを使用せずにmysqldが起動されていることを確認します。
- DBを再起動し、コードを修正して、最終的に接続を閉じます。
- ファイアウォールを無効にするか、ファイアウォール/プロキシを構成してポートを許可/転送します。
ソース: 詳細
DBがダウンしています。 DBサーバーを起動し、最初にtelnetまたはmysqlコマンドラインクライアントとの接続を確認する必要があります。
正確な原因を理解することはできませんでしたが、ターミナルを使用してdbに接続できたため、スレッドプールが原因であることに気付きました。接続を確認するには、以下のコマンドを使用できます。
psql -h hostname -U username -d database
サーバーの再起動はうまくいきました。