GenericJDBCException: Cannot open connection
Ich habe ein problem was wirklich überrascht mich. Alles funktioniert auf localhost, aber wenn ich die Bereitstellung der Anwendung auf dem Host ( jelastic ) server ( glassfish 3.1.1 )
Mit:
- Frühjahr 3.1.1
- Glassfish 3.1.1
- JSF 2.0
- JPA 2.0
erhalten diese(kürzere version):
javax.die Persistenz.PersistenceException: org.hibernate.Ausnahme.GenericJDBCException:
Kann nicht geöffnet werden VerbindungVerursacht durch: org.hibernate.Ausnahme.GenericJDBCException:
Kann nicht geöffnet werden VerbindungVerursacht durch: javax.Ressource.spi.ResourceAllocationException: Fehler bei der Zuordnung der Verbindung.
Ursache: Verbindung konnte nicht zugeteilt werden, weil: Bad handshake
... einige ähnliche Zeilen über BAD HANDSHAKE und nach unten gehen:
Verursacht durch: com.mysql.jdbc.Ausnahmen.jdbc4.MySQLNonTransientConnectionException:
Bad handshake
Einfach nur zu erwähnen - alles funktioniert Prima auf localhost:
/WEB-INF/classes/META-INF/persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="shopPU" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/shopJNDI</jta-data-source>
<class>com.jelastic.adiso87.Shop.entity.UserDetailEntity</class>
<class>com.jelastic.adiso87.Shop.entity.ProductEntity</class>
<class>com.jelastic.adiso87.Shop.entity.CategoryEntity</class>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
</properties>
</persistence-unit>
</persistence>
applicationContext.xml
xlmns-für alle 3.0
<!-- CONTEXT CONFIGURATRION -->
<context:component-scan base-package="com.jelastic.adiso87.Shop" />
<context:annotation-config />
<!-- PERSISTENCE AND TRANSACTION CONFIGURATION -->
<jee:jndi-lookup id="myEmf" jndi-name="persistence/shopPU" />
<jee:jndi-lookup id="dataSource" jndi-name="shopJNDI" />
<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManagerName" value="java:appserver/TransactionManager" />
</bean>
<tx:annotation-driven transaction-manager="txManager" />
<!-- END OF CONFIGURATION -->
<!-- BEANS -->
<bean id="userDetailDao" class="com.jelastic.adiso87.Shop.dao.UserDetailDaoImpl"/>
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="3.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>My App</display-name>
<description>MyProject web.xml</description>
<!-- Welcome files -->
<welcome-file-list>
<welcome-file>index.jsf</welcome-file>
</welcome-file-list>
<!-- Project Stage -->
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<!-- SPRING FRAMEWORK INTEGERATION -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<!-- Log4j CONFIGURATION -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>1000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- Use Documents Saved as *.xhtml -->
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
faces-config.xml
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<resource-bundle>
<base-name>com.jelastic.adiso87.international.messages</base-name>
<var>msg</var>
</resource-bundle>
<locale-config>
<default-locale>pl</default-locale>
<supported-locale>en</supported-locale>
</locale-config>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
In glassfish habe ich bereits eine gleiche Konfiguration für pools und Ressourcen habe ich auf meinem localhost. Ich habe nur geänderte Informationen über die Datenbank. Also im admin-panel habe ich Ping Erfolgreich
Kann mir jemand helfen ?
InformationsquelleAutor adiso | 2012-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, dies ist der Fall bei diesem bug: http://bugs.mysql.com/bug.php?id=64983
Die Lösung ist ein upgrade-Passwort-Hash (der link zum Handbuch ist im bug: http://dev.mysql.com/doc/refman/5.5/en/password-hashing.html )
InformationsquelleAutor voronaam