2012-11-06 74 views
0

我有Android的经验,但不熟悉休眠和提前Java。但我必须解决这个问题。请建议。代码在本地主机上正常工作,但不在远程服务器上

问题是, 下面的代码在我的tomcat本地主机服务器上工作正常。 但显示远程服务器上的错误。 当我登录时说“无效登录”尝试使用相同的密码登录相同的两到三次。

public String Login() { 
     boolean isValidUser = applicationManager.isValidUser(getUserName(), getUserPassword()); 

     if (isValidUser == false) { 
      if (getLang()!=null && getLang().equals("de")) { 
       setLang("de"); 
       addActionMessage("Ungültige Anmeldung"); 
      } else { 
       setLang("en"); 
       addActionMessage("Invalid login"); 
      } 
      return ERROR; 
     } else { 
      session = ActionContext.getContext().getSession(); 
      session.put("loggedIn","true"); 
      session.put("userName", getUserName()); 
      session.put("userPassword", getUserPassword()); 

      try { 

       HttpSession session1; 
       session1 = ServletActionContext.getRequest().getSession(); 
       session1.setAttribute("lang", getLang()); 
       session1.setAttribute("loggedIn", "true"); 
       session1.setAttribute("userName", getUserName()); 
       session1.setAttribute("userPassword", getUserPassword()); 
      } catch(Exception e) { 
       System.out.println(e); 
       e.printStackTrace(); 
      } 
      this.countryList = applicationManager.getCountries(); 
      return SUCCESS; 
     } 
    } 

HibernateUtil.java:

public class HibernateUtil { 

    private static final SessionFactory sessionFactory = buildSessionFactory(); 

    private static SessionFactory buildSessionFactory(){ 
     try{ 
      // create session factory from hibernate.cfg.xml 
      return new AnnotationConfiguration().configure().buildSessionFactory(); 
     }catch(Throwable ex){ 
      System.err.println("Initial SessionFactory creation failed." + ex); 
      throw new ExceptionInInitializerError(ex); 
     } 
    } 

    public static SessionFactory getSessionFactory(){ 
     return sessionFactory; 
    } 
} 

UserManager.java:

public class UserManager extends HibernateUtil{ 

    public ArrayList<User> validateUser(String userName,String userPassword){ 
     Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
     session.beginTransaction(); 
     ArrayList<User> userList = new ArrayList<User>(); 
     try{ 
      Query query = session.createQuery("from User where userName=:userName and userPassword=:userPassword"); 
      query.setString("userName", userName); 
      query.setString("userPassword", userPassword); 
      for(Iterator itr = query.iterate();itr.hasNext();){ 
       User user = (User) itr.next(); 
       userList.add(user); 
      } 
      return userList; 
     }catch(HibernateException he){ 
      he.printStackTrace(); 
      session.getTransaction().rollback(); 
     } 
     session.getTransaction().commit(); 
     return userList; 
    } 
} 

Hiberanate.cfg.xml看起来是这样的:

<hibernate-configuration> 
     <session-factory> 
      <property name="connection.driver_class"> 
       com.mysql.jdbc.Driver 
      </property> 

      <property name="connection.url"> 
       jdbc:mysql://xxxxx/xxxxx 
      </property> 

      <property name="connection.username">samir</property> 
      <property name="connection.password">samir</property> 
      <property name="c3p0.acquire_increment">1</property> 
      <property name="c3p0.idle_test_period">100</property> <!-- seconds --> 
      <property name="c3p0.max_size">100</property> 
      <property name="c3p0.max_statements">0</property> 
      <property name="c3p0.min_size">10</property> 
      <property name="c3p0.timeout">100</property> <!-- seconds -->    
      <property name="dialect"> 
       org.hibernate.dialect.MySQLDialect 
      </property> 
      <property name="current_session_context_class">thread</property> 
      <property name="cache.provider_class"> 
       org.hibernate.cache.NoCacheProvider 
      </property> 
      <property name="show_sql">true</property> 
      <property name="hibernate.use_sql_comments">true</property> 

      <property name="hbm2ddl.auto">update</property> 


      <mapping class="login.model.User" /> 

     </session-factory> 
    </hibernate-configuration> 

日志:

Hibernate: /* from User where userName=:userName and userPassword=:userPassword */ select user0_.USER_ID as col_0_0_ from users user0_ where user0_.USER_NAME=? and user0_.USER_PASSWORD=? 
org.hibernate.exception.JDBCConnectionException: could not execute query using iterate 
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:97) 
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) 
    at org.hibernate.loader.hql.QueryLoader.iterate(QueryLoader.java:450) 
    at org.hibernate.hql.ast.QueryTranslatorImpl.iterate(QueryTranslatorImpl.java:403) 
    at org.hibernate.engine.query.HQLQueryPlan.performIterate(HQLQueryPlan.java:248) 
    at org.hibernate.impl.SessionImpl.iterate(SessionImpl.java:1219) 
    at org.hibernate.impl.QueryImpl.iterate(QueryImpl.java:69) 
    at application.controller.ApplicationManager.isValidUser(ApplicationManager.java:177) 
    at application.view.ApplicationAction.Login(ApplicationAction.java:95) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) 
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249) 
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) 
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468) 
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error: 


** BEGIN NESTED EXCEPTION ** 

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException 
MESSAGE: Communications link failure 

Last packet sent to the server was 47 ms ago. 

STACKTRACE: 

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

Last packet sent to the server was 47 ms ago. 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) 
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2873) 
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2763) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3299) 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837) 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961) 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2543) 
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1737) 
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1888) 
    at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208) 
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1808) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:697) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259) 
    at org.hibernate.loader.Loader.doList(Loader.java:2228) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125) 
    at org.hibernate.loader.Loader.list(Loader.java:2120) 
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401) 
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361) 
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) 
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148) 
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) 
    at application.controller.ApplicationManager.getCountries(ApplicationManager.java:34) 
    at application.view.ApplicationAction.execute(ApplicationAction.java:90) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) 
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249) 
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) 
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468) 
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost. 
    at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2332) 
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2774) 
    ... 86 more 


** END NESTED EXCEPTION ** 


    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
    at com.mysql.jdbc.Util.getInstance(Util.java:381) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:985) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) 
    at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1113) 
    at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4038) 
    at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4004) 
    at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534) 
    at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452) 
    at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161) 
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1573) 
    at org.hibernate.loader.hql.QueryLoader.iterate(QueryLoader.java:422) 
    ... 71 more 
org.hibernate.exception.JDBCConnectionException: could not execute query using iterate 
+0

您的连接代码在哪里? – Ami

+0

更新了问题。 –

+0

在localhost中工作,但不在远程方式。什么是变化。 Tomcat在IP和Localhost中运行。你只是试图没有做任何改变的网址? 也是你的MySQL配置为IP工作。由于本地主机和IP有时被区别对待 – madhairsilence

回答

1

看来连接问题(延迟响应)与远程服务器MySQLdb的服务器

return (ArrayList<User>)query.list(); 
替换此

for(Iterator itr = query.iterate();itr.hasNext();){ 
      User user = (User) itr.next(); 
      userList.add(user); 
     } 
     return userList; 

试试,可能会帮助你

3

(不是一个答案,但一些代码注释。)

以小写字母1)名称功能,例如:

public String login() { ... } 

2 )使用规范的Java用于检查布尔值,例如:

if (!isValidUser) { ... } 

3)使用的变量名,使规范的代码“读”正确,如:

if (!validUser) { ... } 

4)删除了null检查需要做字符串比较时,例如:

if ("de".equals(getLang()) { ... } 

此外,这是我不明白,如果setLang()仅仅是做什么用getLang()检索到的制定者;这有点令人困惑,并且在没有进一步的知识的情况下使得这些代码有点奇怪。

5)不要把有效的用户代码放在相同的条件下;如果它是无效用户,请将其视为特殊情况并返回。然后将有效的用户代码与警卫子句区分开来,例如:

if (!validUser) { 
    // actionMessage stuff. 
    return ERROR; 
} 

session = ActionContext.getContext().getSession(); 
// The rest of valid user code. 

6)使用布尔值作为布尔值,:

session.put("loggedIn", true); 

7)使用常数范围的变量,例如:

session = ActionContext.getContext().getSession(); 
session.put(SessionKeys.LOGGED_IN, true); 

8)使用SessionAware,它使测试更容易; session是那么只是一个action属性:

session.put(SessionKeys.LOGGED_IN, true); 

9)当它是一个完全不同的事情不要将其命名东西session1 ......在这种情况下,它甚至不是一个不同的东西,所以你将相同的信息放入两次。

10)访问动作属性时一致;请勿使用setXxx()this.xxx。无论如何,大多数情况下你只能使用xxx

setCountryList(applicationManager.getCountries()); // Or, my preference in most cases: 
countryList = appManager.getCountries(); 

11)不要被它们的类型名称变量,除了在您需要专门区分情况,如:

countries = appManager.getCountries(); 

这给我们留下了一个更易于管理:

public String Login() { 
    if (!appManager.isValidUser(username, password)) { 
     handleInvalidUser(); 
     return ERROR; 
    } 

    session.put(SessionKeys.LANG,   lang); 
    session.put(SessionKeys.LOGGED_IN,  true); 
    session.put(SessionKeys.USER_NAME,  username); 
    session.put(SessionKeys.USER_PASSWORD, password); 

    countries = appManager.getCountries(); 

    return SUCCESS; 
} 
+0

非常感谢您提供丰富的post.this代码是由我的一位同事写的,他不在办公室,我必须修复bug ... –

0

我认为您的远程服务器和您的数据库之间可能存在防火墙通信问题。 这将解释为什么它在你当地工作。 确保您能够从远程应用程序服务器访问数据库服务器。

希望它有帮助。

0

检查mysql日志:也许你达到MySQL的用户连接到服务器的最大连接数。 C3p0 max_size必须低于服务器的最大连接数。

相关问题