日期:2014-05-20  浏览次数:20866 次

Spring+Ibatis框架所编译JAR的运行问题
各位师兄:
  我的程序用Spring+Ibatis做的框架,NetBeans 5.5为编译器。做的程序,在NetBeans里运行都正常,
显示信息如:
-- listing properties --
log4j.appender.TNDLInfo=org.apache.log4j.DailyRollingFileAppe...
log4j.logger.com.ibatis=DEBUG,A1,A2
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.logger.java.sql.PreparedStatement=DEBUG,A1,A2
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG,A1,A2
log4j.appender.TNDLInfo.layout=org.apache.log4j.PatternLayout
log4j.logger.TNDLScript=ERROR,TNDLScript
log4j.appender.TNDLInfo.Threshold=ERROR
log4j.appender.TNDLScript.layout.ConversionPattern=%d %-5p %c %x - %m%n
log4j.appender.TNDLScript=org.apache.log4j.DailyRollingFileAppe...
log4j.logger.java.sql.Statement=DEBUG,A1,A2
log4j.appender.A1.Append=true
log4j.appender.TNDLScript.File=./log/scriptlog/scriptcreat.log
log4j.appender.TNDLScript.Threshold=ERROR
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.TNDLInfo.File=./log/info/info.log
log4j.appender.TNDLInfo.layout.ConversionPattern=%d %-5p %c %x - %m%n
log4j.appender.A1.Threshold=ERROR
log4j.appender.TNDLInfo.Append=true
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG,A1,A2
log4j.logger.TNDLInfo=ERROR,TNDLInfo
log4j.logger.java.sql.ResultSet=DEBUG,A1,A2
log4j.appender.TNDLScript.Append=true
log4j.appender.A1.layout.ConversionPattern=%d %-5p %c %x - %m%n
log4j.appender.A1.File=./log/ibatis/dberror.log
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG,A1,A2
log4j.logger.java.sql.Connection=DEBUG,A1,A2
log4j.appender.A2=org.apache.log4j.ConsoleAppender
log4j.appender.A2.layout.ConversionPattern=%-5p [%t] %37c %3x - %m%n
log4j.appender.TNDLScript.layout=org.apache.log4j.PatternLayout
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppe...
准备工作。。。
log4j:WARN No appenders could be found for logger (org.springframework.core.CollectionFactory).
log4j:WARN Please initialize the log4j system properly.
开始读取数据库。。。
DEBUG [main] java.sql.Connection - {conn-100000} Connection
DEBUG [main] java.sql.PreparedStatement - {pstm-100001} PreparedStatement:  
。。。。
但通过打成JAR包后,运行JAR包却有问题:信息只显示到
。。。(其它同上)
准备工作。。。
log4j:WARN No appenders could be found for logger (org.springframework.core.CollectionFactory).
log4j:WARN Please initialize the log4j system properly.
开始读取数据库。。。

这里就停止不动了,我的数据库读写都有是通过Spring+Ibatis的框架,应该没有问题,
否则为什么NetBeans里运行会正常。
但就是搞不明白为什么,JAR运行不对,也无异常出现。问了N个同事都没遇过,不知道怎么解决,望赐教谢谢。

------解决方案--------------------
你程序里面是否有类似
File f = new File("/123455.xml"); 这样的直接读取文件或配置文件的方法?

在jar里面,获取任何资源文件,图片,xml等,必须用

Java code
URL u = this.getClass().getClassLoader().getResource("/file/1234.gif"); 
InputStream is =  this.getClass().getClassLoader().getResourceAsStream("/file/1234.gif")

------解决方案--------------------
No appenders could be found for logger (org.springframework.core.CollectionFactory).

这个错误显示,你的日志初始化采用了我说的那个有问题的方法,查一下代码吧!
------解决方案--------------------
学习一下
------解决方案--------------------
哦也遇到过
------解决方案--------------------
没见过