用Sun creator创建的 jsf 项目部署到其他服务器的问题:
对jsf项目的支持,sun creator 无疑给人一种 耳目一新的感觉:
他对可视化开发的支持真的开始可以和.Net较劲了。
但是 creator 有个问题就是可以把项目部署到 sun app server的项目部署到其他服务器老是出同样的问题:
下面总结一下:
步骤一: 把项目导出成 *.war文件
步骤二: 把*.war拷贝到其他服务器的部署目录
比如 tomcat/resin 的 webapp下
步骤三: 运行服务器(tomcat/resin) 问题来了,出现异常
[10:41:34.828] java.lang.NullPointerException
[10:41:34.828] at javax.faces.webapp.FacesServlet.init(FacesServlet.java:144)
[10:41:34.828] at com.caucho.server.dispatch.ServletConfigImpl.createServletImpl(ServletConfigImpl.java:646)
[10:41:34.828] at com.caucho.server.dispatch.ServletConfigImpl.createServlet(ServletConfigImpl.java:587)
看到这个"FacesServlet.java:144" 开始我怀疑是sun 的包的问题, 网上google和baidu了一下,没搜到相关问题的解决办法.
最后在一个朋友的帮助下在web.xml文件里加了个Listener:
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
嘿,还真行.
心得如下:
在用workshop或者myeclipse用myfaces包建jsf项目时,我们不会碰到类似的问题.
因为工具已经在web.xml里面加了listener:
<listener>
<!-- Listener, that does all the startup work (configuration, init). -->
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener </listener-class>
</listener>
但是如果用这些工具用 sun jsf 包时就要手动listerner.(如:步骤三)
给大家个连接: sun creator的教程,从这里开始学jsf感觉比较全面:
http://gceclub.sun.com.cn/prodtech/javatools/jscreator/learning/tutorials/index.html