2017-02-02 6 views
1

У меня есть проект Spring, где для этого я использую mysql в качестве базы данных. Я сконфигурировал пул соединений Tomcat JDBC в файле конфигурации приложения, и соединение отлично работает на моей локальной машине. Но в последнее время я воссоздал наш удаленный сервер и там, после того как я получил ошибку ниже, когда пытаюсь получить доступ к базе данных.Не удалось открыть сеанс Hibernate для транзакции: 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 

Так что будет причиной для этого error.The же проект имеет никаких проблем раньше, и этот вопрос приходит после воссоздания server.I может получить доступ к базе данных MySQL удаленного сервера из PHPMyAdmin используя имя пользователя и пароль. Также не проблема, когда мы запускаем проект в локальной машине и локальной базе данных mysql. Ниже приведен файл конфигурации моего сервлета.

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

Это, как я использую сессии в своем классе услуги:

@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(); 
     } 
    } 

} 

Вот мой 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

Можете ли вы опубликовать код, в котором вы инициализировали sessionfactory? – Akshay

+0

@Akshay Я скопировал код с образцом sessionfactory использования. – KJEjava48

+0

Какова ваша версия спящего режима? Также вы обновили версию Tomcat? – Akshay

ответ

0

Добавьте следующие зависимости в вашем ПОМ. 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> 

Это мой pom.xml, который хорошо работает с JBoss. Просто убедитесь, что у вас есть дополнительные . Ограничения зависимостей HIBERNATE остаются неизменными.