ssh框架 Could not commit Hibernate transaction问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh框架 Could not commit Hibernate transaction问题相关的知识,希望对你有一定的参考价值。

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4
187)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:73
9)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)

at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.jav
a:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.j
ava:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474
)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442
)
at org.apache.catalina.core.StandardService.start(StandardService.java:4
50)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709
)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.
java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.valueOf(Integer.java:553)
at org.hibernate.util.PropertiesHelper.getInteger(PropertiesHelper.java:
37)
at org.hibernate.connection.C3P0ConnectionProvider.configure(C3P0Connect
ionProvider.java:109)
... 45 more
2009-8-3 18:50:02 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2009-8-3 18:50:02 org.apache.catalina.core.StandardContext start
严重: Context [/safe_Flashy] startup failed due to previous errors

这类问题通常都是因为在web.xml里面添加了

<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

而导致的。看到有人回帖说把org.springframework.web.context.ContextLoaderListener替换为org.springframework.web.context.ContextLoaderServlet,服务器就不会报出Error listenerStart的错误了,其实不然,即使错误不会报出了,但作用出现了偏差。究其原因,ContextLoaderListener是在服务器刚启动时即执行的一个监听器,用来监测jar包或者配置文件信息是否完整正确的,所以,如果服务器中报出Error listenerStart的异常,引发的原因可能有很多,因为是服务器内部出现了问题,所以不好调试,也不好用某种固定的方法解决。

最好的解决方法是查看tomcat的日志信息,通过日志的显示,即可以非常清楚的确定因为问题的原因,从而快速的解决问题。

以Tomcat5.5为例,tomcat5.5在默认情况下,并不会自动记录日志信息,需要人为配置。

1、在tomcat安装目录的common/classes中建立一个属性文件log4j.properties

2、在文件中写入日志的信息及日志记录的等级:

log4j.rootLogger=info,Console,R

log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
#log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.Console.layout.ConversionPattern=%dyy-MM-dd HH:mm:ss %5p %c1:%L - %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=$catalina.home/logs/tomcat.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%dyyyy.MM.dd HH:mm:ss %5p %c1(%L):? %m%n

log4j.logger.org.apache=info, R
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R
log4j.logger.org.apache.catalina.core=info, R
log4j.logger.org.apache.catalina.session=info, R

如果不会写,直接将我的拷贝即可

3、将log4j.jar和commons-logging.jar添加到tomcat目录下的common/lib目录中

4、完成

注意:日志的记录会消耗磁盘空间,定时将日志文件进行清除,否则会积存过多的日志文件导致磁盘空间不足
参考技术A 事务没配置吧

Transaction not successfully started&&Could not commit Hibernate transaction;

记录一下这个问题,解决方法是分两种情况,

一种是getCurrentSession();这种情况加入配置:
<property name="hibernate.current_session_context_class">thread</property>

一种是:getSession的

在修改操作后加上

finally
   {   
    session.close();   
   }





以上是关于ssh框架 Could not commit Hibernate transaction问题的主要内容,如果未能解决你的问题,请参考以下文章

git提示错误关于错误:ssh: Could not resolve hostname github.com: Name or service not known.fatal: Could not r

ssh: Could not resolve hostname问题终于解决了?

Crontab could not create directory .ssh

linux 的SSH启动失败Could not load host key

ssh修改默认端口号后无法连接(提示ssh: Could not resolve hostname)

hadoop启动报错:localhost: ssh: Could not resolve hostname localhost