1

私は本当に私を驚かせた問題を抱えています。localhost ではすべて正常に動作しますが、アプリケーションをホスティング ( jelastic ) サーバー ( glassfish 3.1.1 )にデプロイすると

使用:

  • 春 3.1.1
  • グラスフィッシュ 3.1.1
  • JSF2.0
  • JPA2.0

これを受け取ります(短いバージョン):

javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: 接続を開けません

原因: org.hibernate.exception.GenericJDBCException: 接続を開けません

原因: javax.resource.spi.ResourceAllocationException: 接続の割り当て中にエラーが発生しました。原因: 接続を割り当てることができませんでした: ハンドシェイクが正しくない

... BAD HANDSHAKEと下への移動に関する他の同様の行:

原因: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: 不正なハンドシェイク

言及するだけです-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

すべての 3.0 の xlmns

<!-- 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>

顔-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>

グラスフィッシュでは、ローカルホストと同じように、プールとリソースに対して既に同じ構成を行っています。データベースに関する情報のみを変更しました。したがって、管理パネルにはPing Succeedがあります

誰かが私を助けることができますか?

4

1 に答える 1

1

これがこのバグの場合だと思います:http://bugs.mysql.com/bug.php?id=64983

解決策は、ハッシュされたパスワードをアップグレードすることです (ガイドへのリンクはバグに記載されています: http://dev.mysql.com/doc/refman/5.5/en/password-hashing.html )

于 2012-05-08T18:46:21.473 に答える