上星期作的一个接口程序原打算和整个项目一起发布就可以了,后来通知说要该接口要做成独立程序。麻烦...
因为集成了spring+hibernate只有2种办法了一个是桌面程序swing,以前风风火火的搞过几个月, 想想也有一年多没摸了;还是采用第2种方法,做成web程序吧,有myeclipse应该挺快的。
首先要有一个web服务器,正好手头有一台装了weblogic7,但不知道spring1.2、hibernate和weblogic7的集成如何,听同事说weblogic只支持到jdk1.4。先试试吧。
这是昨天下班前,今天早上一来就开始进行集成测试。
首先,按照myeclipse的手册生成了一个底层是hibernate的webproject,发布到weblogic上运行Ok。
接着,生成spring+hibernate的webproject,发布到weblogic,jsp调用的后台类说version错误,原来是jdk的问题,我的eclipse的jdk是5.0,换成weblogic用的1.4重新编译下发布ok。但是紧接着出现了更严重的问题,一运行测试jsp,weblogic的命令台就自动跳出了,weblogic中断。真不知道是什么原因,work over:通过开始程序启动weblogic域weglogic遇错不会将控制台关闭,找到了原因,在spring中<property name="hibernateProperties">加入
<!--为了应对weblogic报错CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken--><prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>
所有weblogic的问题都迎刃而解,下面jboss的3个问题也不是问题了,1运行起来很快,也就是2秒;2日志不用特殊配置直接放到该域下;3spring调度ok。看来weblogic、jboss真是难以取舍!
上面同样的程序发布到jboss4,就运行得好好的,我的接口程序也能够正常存取数据,只是有3点问题:
1、运行起来好慢,在eclipse下执行之需要2、3秒钟,在jboss下执行却用了3分钟。顶盖呢?
原来是我写程序的问题,将spring环境的加载设置成静态的,运行起来甚至都不用1秒呢。
2、jboss在控制台捕获了本应该输出到文件的log4j配置,weblogic是没有问题的。正在找解决办法。
刚把这篇文章发布到csdn,就发现那边的文件日志成功生成了,办法如下——
首先修改C:/Program Files/jboss-4.0.3SP1/server/default/conf/jboss-service.xml,在
<attribute name="ConfigurationURL">resource:log4j.xml</attribute>下面增加属性
<attribute name="CatchSystemOut">false</attribute>
接着将我web project中的log4j配置移到C:/Program Files/jboss-4.0.3SP1/server/default/conf/log4j.xml,
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.home.dir}/log/VvgooYskInterface.log"/>
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n"/>
</layout>
</appender>
<category name="jeffenLogger">
<priority value="INFO"/>
<appender-ref ref="VvgooYskInterface"/>
</category>
3、spring的调度配置好像不能通过应用服务器的初始化,放在最后解决巴。
很高兴,今早一上班,发现部署到jboss的spring调度程序运行ok。