2017-02-02 3 views
1

J'ai un projet printanier où pour cela j'utilise mysql comme base de données. J'ai configuré le pool de connexion Tomcat JDBC dans le fichier de configuration servelet et la connexion est fonctionnant bien dans ma machine locale. Mais récemment j'ai recréé notre serveur à distance et là suis après l'erreur ci-dessous quand j'essaye d'accéder à la base de données.Impossible d'ouvrir la session Hibernate pour la transaction: org.hibernate.exception.GenericJDBCException

{"error":"unauthorized","error_description":"Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection"}curl: (6) Could not resolve host: application 

Alors quelle sera la raison de ce même projet erreur.Dispositif ont pas de problèmes plus tôt et la question vient après recréer le server.I peut accéder à la base de données du serveur MySQL distant de phpMyAdmin en utilisant le même nom d'utilisateur et mot de passe. Aussi pas de problème lorsque nous exécutons le projet dans la machine locale et dans la base de données mysql locale. Voici mon fichier de configuration de servlet de printemps.

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd 
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"> 
    <!-- @author Nagesh.Chauhan([email protected]) --> 
     <context:annotation-config /> 
    <context:component-scan base-package="com.example.myproject" > 
    <context:exclude-filter type="assignable" expression="com.example.myproject.controller.MyController"/> 
    </context:component-scan> 
    <mvc:annotation-driven> 
     <mvc:message-converters register-defaults="false"> 
      <bean class="org.springframework.http.converter.StringHttpMessageConverter" /> 
      <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" /> 
     </mvc:message-converters> 
    </mvc:annotation-driven>  
     <!-- in above <bean class="org.springframework.http.converter.FormHttpMessageConverter" /> 
      <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /> --> 

    <bean id="multipartResolver" 
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 

    <!-- one of the properties available; the maximum file size in bytes --> 
    <property name="maxUploadSize" value="1000000000" /> 
    </bean> 

    <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
    <property name="url" value="jdbc:mysql://localhost:3306/SampleDb"/> 
    <property name="username" value="root"/> 
    <property name="password" value="mypassword"/> 
    <property name="validationQuery" value="SELECT 1"/> 
    </bean> 

    <!-- Hibernate Session Factory --> 
    <bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="myDataSource"/> 
    <property name="packagesToScan"> 
     <array> 
     <value>com.example.myproject</value> 
     </array> 
    </property> 
    <property name="hibernateProperties"> 
     <value> 
     hibernate.dialect=org.hibernate.dialect.MySQLDialect 
     </value> 
    </property> 
    </bean> 
    <!-- Hibernate Transaction Manager --> 
    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="mySessionFactory"/> 
    </bean> 

    <!-- Activates annotation based transaction management --> 
    <tx:annotation-driven transaction-manager="transactionManager"/> 
</beans> 

Voici comment j'utilise la session dans ma classe de service:

@Repository 
@Transactional 
public class MyMainService implements MainDao { 
    @Autowired 
    private SessionFactory sessionFactory; 

    private org.hibernate.Session getCurrentSession(){ 
     return sessionFactory.getCurrentSession(); 
    } 

    // just a sample 
    @Override 
    public void setUser(String idStr, Integer age) { 
     UserSample newUserSam = new UserSample(); 
     try{ 
      newUserSam.setAge(age); 
      newUserSam.setId(idStr); 
      getCurrentSession().saveOrUpdate(newUserSam); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

} 

Voici mon fichier pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>MyProject</groupId> 
    <artifactId>MyProject</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <properties> 
    <spring.version>4.1.0.RELEASE</spring.version> 
    <hibernate.version>4.2.2.Final</hibernate.version> 
    <!-- Spring Security OAuth2 --> 
    <spring-security-oauth2-version>2.0.8.RELEASE</spring-security-oauth2-version> 
    </properties> 

    <dependencies> 
    <!-- https://mvnrepository.com/artifact/org.springframework.security.oauth/spring-security-oauth2 --> 
<!-- Spring Security OAuth2 --> 
     <dependency> 
      <groupId>org.springframework.security.oauth</groupId> 
      <artifactId>spring-security-oauth2</artifactId> 
      <version>${spring-security-oauth2-version}</version> 
     </dependency> 
    <!-- Spring --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-web</artifactId> 
    <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-beans</artifactId> 
    <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-core</artifactId> 
    <version>${spring.version}</version> 
    <scope>compile</scope> 
    <exclusions> 
    <exclusion> 
     <artifactId>commons-logging</artifactId> 
     <groupId>commons-logging</groupId> 
    </exclusion> 
    </exclusions> 
</dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-oxm</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.9</version> 
    </dependency> 
    <dependency> 
     <groupId>org.json</groupId> 
     <artifactId>json</artifactId> 
     <version>20070829</version> 
    </dependency> 
    <dependency> 
     <groupId>net.sf.json-lib</groupId> 
     <artifactId>json-lib</artifactId> 
     <version>2.4</version> 
     <classifier>jdk15</classifier> 
    </dependency> 
    <dependency> 
     <groupId>com.google.code.gson</groupId> 
     <artifactId>gson</artifactId> 
     <version>2.2.4</version> 
    </dependency> 

    <!-- Security --> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-config</artifactId> 
      <version>3.2.9.RELEASE</version> 
     </dependency> 

    <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>3.2.9.RELEASE</version> 
     </dependency> 
     <!-- http://mvnrepository.com/artifact/org.springframework.security/spring-security-core --> 
<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-core</artifactId> 
    <version>3.2.9.RELEASE</version> 
</dependency> 

     <!-- http://mvnrepository.com/artifact/org.springframework.security/spring-security-crypto --> 
<!-- <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-crypto</artifactId> 
     <version>3.1.0.RELEASE</version> 
    </dependency>  --> 
    <!-- Hibernate --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>${hibernate.version}</version> 
    </dependency> 

    <!-- Java EE --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

    <!-- Others --> 
    <dependency> 
     <groupId>org.swinglabs</groupId> 
     <artifactId>swingx</artifactId> 
     <version>0.9</version> 
     </dependency> 

    <dependency> 
     <groupId>commons-dbcp</groupId> 
     <artifactId>commons-dbcp</artifactId> 
     <version>1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.25</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.14</version> 
    </dependency> 
    <dependency> 
    <groupId>javax.ws.rs</groupId> 
    <artifactId>jsr311-api</artifactId> 
    <version>0.11</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpclient</artifactId> 
    <version>4.3.5</version> 
</dependency> 
    <dependency> 
    <groupId>commons-httpclient</groupId> 
    <artifactId>commons-httpclient</artifactId> 
    <version>3.1</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.xml.ws</groupId> 
    <artifactId>jaxws-rt</artifactId> 
    <version>2.1.4</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.tiles</groupId> 
    <artifactId>tiles-extras</artifactId> 
    <version>3.0.5</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-io</artifactId> 
    <version>1.3.2</version> 
</dependency> 
<dependency> 
    <groupId>commons-io</groupId> 
    <artifactId>commons-io</artifactId> 
    <version>2.4</version> 
</dependency> 
<dependency> 
    <groupId>commons-fileupload</groupId> 
    <artifactId>commons-fileupload</artifactId> 
    <version>1.2</version> 
</dependency> 
<dependency> 
    <groupId>com.fifesoft</groupId> 
    <artifactId>autocomplete</artifactId> 
    <version>1.5.0</version> 
</dependency> 
<dependency> 
    <groupId>org.swinglabs.swingx</groupId> 
    <artifactId>swingx-autocomplete</artifactId> 
    <version>1.6.3</version> 
</dependency> 
<dependency> 
     <groupId>net.java.dev.glazedlists</groupId> 
     <artifactId>glazedlists_java15</artifactId> 
     <version>1.8.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
      <version>2.7.2</version> 
     </dependency> 
     <dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-core</artifactId> 
    <version>2.7.2</version> 
</dependency> 
     <dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-annotations</artifactId> 
    <version>2.7.2</version> 
</dependency> 

    </dependencies> 

    <build> 
    <testSourceDirectory>src/main/test</testSourceDirectory> 
    <resources> 
     <resource> 
     <directory>src/main/resources</directory> 
     <excludes> 
      <exclude>**/*.java</exclude> 
     </excludes> 
     </resource> 
     <resource> 
     <directory>src/main/webapp</directory> 
     <excludes> 
      <exclude>**/*.java</exclude> 
     </excludes> 
     </resource> 
    </resources> 
    <plugins> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.3</version> 
     <configuration> 
      <source>1.8</source> 
      <target>1.8</target> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.6</version> 
     <configuration> 
      <failOnMissingWebXml>false</failOnMissingWebXml> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 
+0

Pouvez-vous publier le code dans lequel vous avez initialisé la sessionfactory? – Akshay

+0

@Akhay J'ai édité le code avec un exemple d'utilisation de sessionfactory. – KJEjava48

+0

Quelle est votre version d'hibernation? Avez-vous également mis à jour votre version de Tomcat? – Akshay

Répondre

0

Ajouter les dépendances suivantes dans votre pom. xml

<dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>4.0.1.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.2.0.Final</version> 
     </dependency>   
     <dependency> 
      <groupId>org.hibernate.common</groupId> 
      <artifactId>hibernate-commons-annotations</artifactId> 
      <version>4.0.1.Final</version> 
      <classifier>tests</classifier> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.0-api</artifactId> 
      <version>1.0.1.Final</version> 
     </dependency>  
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>4.0.1.Final</version> 
     </dependency>  
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.0.0.GA</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.6.4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.logging</groupId> 
      <artifactId>jboss-logging</artifactId> 
      <version>3.1.0.CR2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.6.4</version> 
     </dependency> 

Ceci est mon pom.xml qui fonctionne bien avec JBoss.Assurez-vous que vous avez HIBERNATE supplémentaire dépendances restes reste le même.