今天中午还好好运行的程序,晚上就不行了。中午我把jsf+hibernate+spring写的程序,B/S结构,用tomcat运行给我一朋友看。就是看了看页面运行的情况,没有动程序源码。到晚上回家,就不好使了。表现为,与数据库相关的查询没有反应,也没有报告错误。如:登陆页面,输入账号密码后点击就是页面刷新,也没有错误提示。查询数据也是如此。试了很多次。一开始还以为是我系统出问题了,因为中午的时候装些软件是有病毒报错,且系统自己升级失败sp3。于是换了个操作系统win2003结果还是一样。
老天啊,这可是我2个月的结晶啊。用eclipse 查看也没有发现有什么问题。重新发布一编还是如此。用myeclipse调试,也没有出现错误提示,就是点击查询数据就没有反应。以为数据库有问题,换了个程序看看,没有问题。最后连系统还原都用上了,也没有用。
最后,发现了一个问题,可能是中午在展示的时候,有一页面是没有操作完就关了。据说是,客户端页面没有等数据显示就关闭了,tomcat就会一直发送数据。到tomcat6/work/Catalina/localhost中把相关的程序文件删除,重新发布一编,ok.好了。/work/Catalina/localhost这个目录中专门装载一些临时文件,程序先从这边加载,如果没有才会去/webapps中查找相关文件。客户端要刷新才会得到最新发布的文件。
还有一个问题就是faces-config.xml文件中有一个<application></application>全程用的程序放这里面。一开始我的faces-config.xml有2个这配置,在一开始的地方
<application>
<variable-resolver>
org.springframework.web.jsf.DelegatingVariableResolver
</variable-resolver>
<message-bundle>messages</message-bundle>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>zh_CN</supported-locale>
<supported-locale>en_US</supported-locale>
</locale-config>
</application>
最后面还有一个trinidad的文件呈现器相关的配置。
<application>
<default-render-kit-id>org.apache.myfaces.trinidad.core</default-render-kit-id> </application>
后来证实不是这个问题。
其实是在web.xml中
<filter>
<filter-name>trinidad</filter-name>
<filter-class>org.apache.myfaces.trinidad.webapp.TrinidadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>trinidad</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<!-- resource loader servlet -->
<servlet>
<servlet-name>resources</servlet-name>
<servlet-class>org.apache.myfaces.trinidad.webapp.ResourceServlet</servlet-class>
</servlet>
<!-- Faces Servlet Mappings -->
<servlet-mapping>
<servlet-name>faces</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>faces</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resources</servlet-name>
<url-pattern>/adf/*</url-pattern>
</servlet-mapping>
<!-- Welcome Files -->
<servlet-mapping>
<servlet-name>resources</servlet-name>
<url-pattern>/afr/*</url-pattern>
</servlet-mapping>