2014-09-01 71 views
0

我在部署我的應用程序後的一兩天內,將應用程序部署到我的大學的應用程序服務器時出現此反覆錯誤。當我輸入應用程序的網址。一旦發生這種情況,我檢測了幾件事情。Spring:創建bean時出錯,部署後破壞管道

  1. 如果我刷新網頁,錯誤消失
  2. 一旦發生這種情況,一個小時左右後,我的數據庫模型只是完全凍結,以及它不能夠使用該模型的其他應用程序進行操作,使這些應用程序也凍結。
  3. 解決此問題的唯一方法是重新啓動服務器。

這裏是我的aplicationContext文件

<?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:aop="http://www.springframework.org/schema/aop" 
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 

<context:annotation-config /> 

<context:component-scan base-package="pe.edu.sistemas.sisdiho" /> 

<context:property-placeholder location="classpath:application.properties" /> 


<tx:annotation-driven transaction-manager="transactionManager" /> 

<bean id="transactionManager" 
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
    <property name="dataSource" ref="dataSource"></property> 
</bean> 

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
    <property name="basePackage" value="pe.edu.sistemas.sisdiho.mappers" /> 
</bean> 

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> 
    <constructor-arg index="0" ref="sqlSessionFactory" /> 
</bean> 

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="typeAliasesPackage" value="pe.edu.sistemas.sisdiho.entities" /> 
    <property name="mapperLocations" 
     value="classpath*:pe/edu/sistemas/sisdiho/mappers/**/*.xml" /> 
</bean> 

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="${jdbc.driverClassName}"></property> 
    <property name="url" value="${jdbc.url}"></property> 
    <property name="removeAbandoned" value="true"></property> 
    <property name="username" value="${jdbc.username}"></property> 
    <property name="password" value="${jdbc.password}"></property> 
    <property name="initialSize" value="3"></property> 
</bean> 

,這裏是我的服務器日誌中發現的錯誤

ago 22, 2014 10:10:39 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE:  
El Servlet.service() para el servlet [Faces Servlet] en el contexto con ruta [/sisdiho] lanzó la excepción 
[Error creating bean with name 'commonLaboScheduleController': Invocation of init method failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: 
The last packet successfully received from the server was 60.409.421 milliseconds ago. The last packet sent successfully to the server was 60.409.421 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.] con causa raíz java.net.SocketException: broken Pipeline 

最新的錯誤日誌我是20頁長所以我會鏈接我的驅動器上共享的錯誤日誌。

Application error log

有人能告訴我什麼我做錯了什麼?我該如何解決呢?

即時通訊使用: 春天工具套件 MyBatis的 Mysql的 Primefaces

+0

作爲企業的第一順序,確保所有超時是同步的。 Db連接池,數據庫本身和任何其他地方數據庫連接可能會保持活躍一段時間。如果從池中返回死連接,則可能會發生類似這樣的情況。第二,在池中配置連接檢查,因爲你可能會受到損壞。 – kaqqao 2014-09-01 18:57:29

+0

很抱歉,但我如何編輯它,我真的是新的服務器和數據庫的整個事情。我正在使用spring tool套件和mysql數據庫與phpmyadmin.Where我可以檢查或更改這些設置。 – user3719705 2014-09-02 17:26:55

+0

對於MySQL,如果你沒有碰到任何東西,默認會很長(我認爲8h)。我猜你正在使用某種連接池,對吧?但是什麼? Tomcat提供的那個? C3P0?還有別的嗎? – kaqqao 2014-09-02 21:51:56

回答

0

切換到另一個連接池,看看它是否適合你:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="${jdbc.driverClassName}"></property> 
    <property name="url" value="${jdbc.url}"></property> 
    <property name="removeAbandoned" value="true"></property> 
    <property name="username" value="${jdbc.username}"></property> 
    <property name="password" value="${jdbc.password}"></property> 
    <property name="initialSize" value="3"></property> 
</bean> 

一些其他的Java連接池包括:

相關問題