【问题标题】:JDBCExceptionReporter - SQL Error: 17008, SQLState: 08003JDBCExceptionReporter - SQL 错误:17008,SQLState:08003
【发布时间】:2014-06-26 16:40:34
【问题描述】:

我在获取记录时遇到错误及其零星,它可以通过重新启动服务器或在一段时间后自行修复。我正在使用 Struts 2、Oracle 11g、Hibernate 3。

错误

2014-05-06 13:38:51 WARN  JDBCExceptionReporter:100 - SQL Error: 17002, SQLState: 08006
2014-05-06 13:38:51 ERROR JDBCExceptionReporter:101 - IO Error: Connection timed out
2014-05-06 13:38:51 ERROR Dispatcher:38 - Exception occurred during processing request: null
java.lang.NullPointerException
    at com.tai.dao.UsersTaiImplDAO.listUser(UsersTaiImplDAO.java:37)
    at com.tai.web.UsersTaiAction.userLogin(UsersTaiAction.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at 

C3P0 属性

<property name="c3p0.acquire_increment">4</property>
<property name="c3p0.idle_test_period">100</property> <!-- seconds -->
<property name="c3p0.max_size">20</property>
<property name="c3p0.max_statements">0</property    >
<property name="c3p0.min_size">10</property>
<property name="c3p0.timeout">300</property>
<property name="c3p0.acquireRetryDelay">1000</property>
<property name="c3p0.acquireRetryAttempts">65</property>
<property name="c3p0.breakAfterAcquireFailure">false</property>
<property name="c3p0.numHelperThreads">8</property>
<property name="c3p0.maxAdministrativeTaskTime">1</property>

代码

public List<UsersTai> listUser(String userName, String password) {
    _logger.debug("listUser");
    List<UsersTai> usersTai = null;
    String name= userName.substring(userName.indexOf('@')).trim();
    try {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
         session.beginTransaction();
        usersTai = session.createQuery("from UsersTai where username='" + userName +"' or username= '"+name + "' and USERPASSWORD='"+ password +"'").list();
        session.getTransaction().commit();

【问题讨论】:

  • 欢迎来到 StackOverflow。阅读here,了解如何提出一个好问题。对于初学者,您能否告诉我们您使用的是哪个版本的 Hibernate,发布引发异常的方法并提供整个堆栈跟踪。如果没有更多信息,我们无法调试模糊的问题。
  • 删除评论并编辑您的问题以添加堆栈跟踪和引发异常的方法
  • 那么你的 dao 中的第 37 行是哪一行?

标签: hibernate jdbc struts2 oracle11g


【解决方案1】:

如果当前休眠会话不可用,您将无法获取它。更改代码以打开新会话。

Session session = HibernateUtil.getSessionFactory().openSession();

最后,当您不再需要它时,使用会话工厂关闭会话。

【讨论】:

    猜你喜欢
    • 2014-01-11
    • 2013-03-26
    • 2013-12-15
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多