解决方案 »

  1.   

    com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil cannot find method [validateDoDoLogin] in action [ntci.action.LoginAction@665e41]
    这里说找不到方法,从这句日志一下的是ERROR还是warn ?
      

  2.   

    你好!!这里并没有出现error或者warn!!只是这两行的红色字体是什么意思(DoLogin、DoDoLogin)!
    2014-04-23 08:13:11  com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil cannot find method [validateDoLogin] in action [ntci.action.LoginAction@665e41]
    2014-04-23 08:13:11  com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil cannot find method [validateDoDoLogin] in action [ntci.action.LoginAction@665e41]
      

  3.   

    debug模式启动的吧,有断点?
      

  4.   

    不是debug,就是正常启动的啊!!
      

  5.   

    从你这堆debug信息中没看到有用的信息,如果是 08:12:41   开始登陆 直到日志最后结束 08:13:11  看起来都是正常的流转过程 没有体现出你所说的 3-5分钟的卡顿。最好把具体信息拉出来,或者F12的请求访问时间截图也行。
      

  6.   

    2014-04-23 10:47:30  com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@178743b], property=struts]
    2014-04-23 10:47:30  com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@178743b], property=struts]
    2014-04-23 10:47:30  com.opensymphony.xwork2.DefaultActionProxy Creating an DefaultActionProxy for namespace / and action name login_doLogin
    2014-04-23 10:47:30  com.opensymphony.xwork2.config.impl.AbstractMatcher Attempting to match 'login_doLogin' to a wildcard pattern, 10 available
    2014-04-23 10:47:30  com.opensymphony.xwork2.config.impl.AbstractMatcher Value matches pattern 'login_*'
    2014-04-23 10:47:30  org.springframework.beans.factory.support.DefaultListableBeanFactory Returning cached instance of singleton bean 'loginService'
    2014-04-23 10:47:30  org.springframework.beans.factory.support.DefaultListableBeanFactory Added autowiring by name from bean name 'ntci.action.LoginAction' via property 'loginService' to bean named 'loginService'
    2014-04-23 10:47:30  com.opensymphony.xwork2.interceptor.I18nInterceptor intercept '//login_doLogin' { 
    2014-04-23 10:47:30  com.opensymphony.xwork2.interceptor.I18nInterceptor applied invocation context locale=zh_CN
    2014-04-23 10:47:30  com.opensymphony.xwork2.interceptor.I18nInterceptor before Locale=zh_CN
    2014-04-23 10:47:30  com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler Entering nullPropertyValue [target=[ntci.action.LoginAction@16d3d51, com.opensymphony.xwork2.DefaultTextProvider@178743b], property=struts]
    2014-04-23 10:47:31  com.opensymphony.xwork2.util.LocalizedTextUtil Resource bundles reloaded
    2014-04-23 10:47:31  org.apache.struts2.interceptor.FileUploadInterceptor Bypassing //login_doLogin
    2014-04-23 10:47:31  com.opensymphony.xwork2.interceptor.StaticParametersInterceptor Setting static parameters {}
    2014-04-23 10:47:31  com.opensymphony.xwork2.interceptor.ParametersInterceptor Setting params NONE
    2014-04-23 10:47:31  com.opensymphony.xwork2.interceptor.ParametersInterceptor Setting params passWord => [ amdin ] userName => [ admin ] 
    2014-04-23 10:47:31  com.opensymphony.xwork2.conversion.impl.XWorkConverter Retrieving convert for class [class ntci.action.LoginAction] and property [passWord]
    2014-04-23 10:47:31  com.opensymphony.xwork2.conversion.impl.XWorkConverter field-level type converter for property [passWord] = none found
    2014-04-23 10:47:31  com.opensymphony.xwork2.conversion.impl.XWorkConverter global-level type converter for property [passWord] = none found
    2014-04-23 10:47:31  com.opensymphony.xwork2.conversion.impl.XWorkConverter falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@d637d]
    2014-04-23 10:47:31  com.opensymphony.xwork2.ObjectFactory Creating converter of type [com.opensymphony.xwork2.conversion.impl.StringConverter]
    2014-04-23 10:47:31  com.opensymphony.xwork2.conversion.impl.XWorkConverter Retrieving convert for class [class ntci.action.LoginAction] and property [userName]
    2014-04-23 10:47:31  com.opensymphony.xwork2.conversion.impl.XWorkConverter field-level type converter for property [userName] = none found
    2014-04-23 10:47:31  com.opensymphony.xwork2.conversion.impl.XWorkConverter global-level type converter for property [userName] = none found
    2014-04-23 10:47:31  com.opensymphony.xwork2.conversion.impl.XWorkConverter falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@d637d]
    2014-04-23 10:47:31  com.opensymphony.xwork2.ObjectFactory Creating converter of type [com.opensymphony.xwork2.conversion.impl.StringConverter]
    2014-04-23 10:47:31  org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor Validating //login_doLogin with method doLogin.
    2014-04-23 10:47:31  com.opensymphony.xwork2.validator.ValidationInterceptor Invoking validate() on action ntci.action.LoginAction@16d3d51
    2014-04-23 10:47:31  com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil cannot find method [validateDoLogin] in action [ntci.action.LoginAction@16d3d51]
    2014-04-23 10:47:31  com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil cannot find method [validateDoDoLogin] in action [ntci.action.LoginAction@16d3d51]
    2014-04-23 10:47:31  com.opensymphony.xwork2.DefaultActionInvocation Executing action method = doLogin
    2014-04-23 10:47:31  org.hibernate.impl.SessionImpl opened session at timestamp: 13982212513
    2014-04-23 10:47:31  org.hibernate.transaction.JDBCTransaction begin
    2014-04-23 10:47:31  org.hibernate.jdbc.ConnectionManager opening JDBC connection
    2014-04-23 10:49:05  org.hibernate.transaction.JDBCTransaction current autocommit status: true
    2014-04-23 10:49:05  org.hibernate.transaction.JDBCTransaction disabling autocommit
    2014-04-23 10:49:05  org.hibernate.jdbc.AbstractBatcher about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
    2014-04-23 10:49:05  org.hibernate.SQL select login0_.USERNAME as USERNAME0_, login0_.PASSWORD as PASSWORD0_ from P2PDB.LOGIN login0_ where login0_.USERNAME=? and login0_.PASSWORD=?
    2014-04-23 10:49:05  org.hibernate.jdbc.AbstractBatcher about to open ResultSet (open ResultSets: 0, globally: 0)
    2014-04-23 10:49:05  org.hibernate.jdbc.AbstractBatcher about to close ResultSet (open ResultSets: 1, globally: 1)
    2014-04-23 10:49:05  org.hibernate.jdbc.AbstractBatcher about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
    2014-04-23 10:49:05  org.hibernate.engine.StatefulPersistenceContext initializing non-lazy collections
    2014-04-23 10:49:05  org.hibernate.transaction.JDBCTransaction commit
    2014-04-23 10:49:05  org.hibernate.transaction.JDBCTransaction re-enabling autocommit
    2014-04-23 10:49:05  org.hibernate.transaction.JDBCTransaction committed JDBC Connection
    2014-04-23 10:49:05  org.hibernate.jdbc.ConnectionManager aggressively releasing JDBC connection
    2014-04-23 10:49:05  org.hibernate.jdbc.ConnectionManager releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
    2014-04-23 10:49:05  org.apache.struts2.json.JSONUtil [JSON]{"login":false,"name":null,"passWord":"amdin","success":false,"userName":"admin"}
    2014-04-23 10:49:05  com.opensymphony.xwork2.interceptor.I18nInterceptor after Locale=zh_CN
    2014-04-23 10:49:05  com.opensymphony.xwork2.interceptor.I18nInterceptor intercept }
      

  7.   

    数据库和项目在一个主机上吗?时间不是login耗费的。应该是hibernate那边打开数据库连接耗了很长时间:2014-04-23 10:47:31  org.hibernate.jdbc.ConnectionManager opening JDBC connection
    2014-04-23 10:49:05  org.hibernate.transaction.JDBCTransaction current autocommit status: true
      

  8.   

    数据库和项目不在一个主机上,但项目和tomcat在一个主机上!!
      

  9.   

    和tomcat没关系,估计是你tomcat所在的主机和数据库所在主机网络不好。你可以检查下网络
      

  10.   

    我已经上传了,您看看,这是登录的时候,用户名和密码是错的,但就是卡顿了两三分钟!!你用了连接池么?用了连接池啊!
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver">
    </property>
    <property name="url" value="">
    </property>
    <property name="username" value=""></property>
    <property name="password" value=""></property>
    <!-- 池启动时创建的连接数量 -->
    <property name="initialSize" value="8" />
    <!-- 同一时间可以从池分配的最多连接数量。设置为0时表示无限制。 -->
    <property name="maxActive" value="30" />
    <!-- 池里不会被释放的最多空闲连接数量。设置为0时表示无限制。 -->
    <property name="maxIdle" value="20" />
    <!-- 在不新建连接的条件下,池中保持空闲的最少连接数。 -->
    <property name="minIdle" value="15" />
    <!-- 设置自动回收超时连接 -->
    <property name="removeAbandoned" value="true" />
    <!-- 自动回收超时时间(以秒数为单位) -->
    <property name="removeAbandonedTimeout" value="3000" />
    <!-- 设置在自动回收超时连接的时候打印连接的超时错误  -->
    <property name="logAbandoned" value="true" />
    <!-- 等待超时以毫秒为单位,在抛出异常之前,池等待连接被回收的最长时间(当没有可用连接时)。设置为-1表示无限等待。  -->
    <property name="maxWait" value="100" />
    <property name="validationQuery" value="select 1 from dual" />
    <property name="testOnBorrow" value="true" />
    </bean>