2008-05-10
基于myfaces 1.1.x,seam 1.2 应用在websphere 6.1下的部署!
关键字: jsf
公司因为和IBM合作统一为客户提供websphere6.1的应用环境,所以让我很是恼火,有两点原因:
1.ws61只能完全支持j2ee1.4标准而不支持j2ee1.5,需要等待ws7.0出来才支持,虽然现在有ejb3的pack包,甚至传闻会出j2ee1.5pack,但是只是推荐开发环境使用(服了,开发环境我还用它),这样jstl,jsp,jsf的统一EL不能用了,jsf1.2规范不能用了,seam2.0不能用了,恼火!
2.我习惯使用myfaces1.1.5和tomahawk-1.1.6,都是基于jsf1.1规范,并使用seam1.2进行展现层管理!但是正常部署居然websphere6.1不兼容,更恼火!
不兼容有两个方面:
1.myfaces不兼容,因为ibm有自己的jsf-ibm实现,而且将此加入到了com.ibm.ws.webcontainer_2.0.0.jar当中,成了ibm websphere web环境的必须标准,呵呵,更狠!
2.seam和ibm的jsf实现不兼容,不兼容的地方是会在启动处抛出java.lang.ClassCastException: org.jboss.seam.jsf.SeamApplication11 incompatible with com.sun.faces.application.ApplicationImpl
seam的领头人gavin.king这样说:
Yes, they should not do that typecast, that is a bug in their JSF impl.
呵呵gavin说那是他们的一个bug。
那么也就是说使用ibm的jsf实现的项目是使用不了seam了,只能用myfaces实现和标准实现了!
废话了半天其实解决的方法很简单:
就是进入企业应用-》你部署的应用-》模块管理-》你的war-》更改类加载顺序的选择项,让你的war应用加载高于父环境的类加载。
重启你的应用,myfaces就可以正确使用了
但是这样做有两个问题:
1.ibm的jsf组件就不用想了。
2.和jsf扩展的框架比如seam就需要部署在war中启动,myfaces-api,myfaces-impl.jar, seam.jar,seam-ui.jar等就要放在WEB-INF/lib下面,那么使用ear方式部署的项目会非常难受!
参考文档:
myfaces部署:http://wiki.apache.org/myfaces/Websphere_Installation
jboss seam bug:http://www.jboss.com/index.html?module=bb&op=viewtopic&t=107948&postdays=0&postorder=asc&start=10
1.ws61只能完全支持j2ee1.4标准而不支持j2ee1.5,需要等待ws7.0出来才支持,虽然现在有ejb3的pack包,甚至传闻会出j2ee1.5pack,但是只是推荐开发环境使用(服了,开发环境我还用它),这样jstl,jsp,jsf的统一EL不能用了,jsf1.2规范不能用了,seam2.0不能用了,恼火!
2.我习惯使用myfaces1.1.5和tomahawk-1.1.6,都是基于jsf1.1规范,并使用seam1.2进行展现层管理!但是正常部署居然websphere6.1不兼容,更恼火!
不兼容有两个方面:
1.myfaces不兼容,因为ibm有自己的jsf-ibm实现,而且将此加入到了com.ibm.ws.webcontainer_2.0.0.jar当中,成了ibm websphere web环境的必须标准,呵呵,更狠!
2.seam和ibm的jsf实现不兼容,不兼容的地方是会在启动处抛出java.lang.ClassCastException: org.jboss.seam.jsf.SeamApplication11 incompatible with com.sun.faces.application.ApplicationImpl
seam的领头人gavin.king这样说:
Yes, they should not do that typecast, that is a bug in their JSF impl.
呵呵gavin说那是他们的一个bug。
那么也就是说使用ibm的jsf实现的项目是使用不了seam了,只能用myfaces实现和标准实现了!
废话了半天其实解决的方法很简单:
就是进入企业应用-》你部署的应用-》模块管理-》你的war-》更改类加载顺序的选择项,让你的war应用加载高于父环境的类加载。
重启你的应用,myfaces就可以正确使用了
但是这样做有两个问题:
1.ibm的jsf组件就不用想了。
2.和jsf扩展的框架比如seam就需要部署在war中启动,myfaces-api,myfaces-impl.jar, seam.jar,seam-ui.jar等就要放在WEB-INF/lib下面,那么使用ear方式部署的项目会非常难受!
参考文档:
myfaces部署:http://wiki.apache.org/myfaces/Websphere_Installation
jboss seam bug:http://www.jboss.com/index.html?module=bb&op=viewtopic&t=107948&postdays=0&postorder=asc&start=10
评论
fangshun
2008-05-11
如果部署在上层,那么应用不管如何顺序启动,你的jsf相关类会和ibm-jsf类在一个启动的加载级别,必然会先加载ibm-jsf的类路径,也就先初始化ibm的jsf上下文,it's my pain ...
bottom
2008-05-10
2.和jsf扩展的框架比如seam就需要部署在war中启动,myfaces-api,myfaces-impl.jar, seam.jar,seam-ui.jar等就要放在WEB-INF/lib下面,那么使用ear方式部署的项目会非常难受!
I don't understand. What's your pain?
I don't understand. What's your pain?
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 576 次
- 性别:

- 来自: 西安

- 详细资料
搜索本博客
最新评论
-
共享我在项目中使用jsf的 ...
flare 写道jsf 能成为王者那是真正的搞笑。 你有真正想过什么是web开发 ...
-- by 打倒小日本 -
共享我在项目中使用jsf的 ...
jsf 能成为王者那是真正的搞笑。你有真正想过什么是web开发吗?你对组件化的设 ...
-- by flare -
共享我在项目中使用jsf的 ...
lz总结的真好,很多地方和你有同感(除了的4条不太明白以外). 呵呵,尤其是,我 ...
-- by manyhope -
共享我在项目中使用jsf的 ...
jsf项目用了3年了,项目目前10几万的固定用户,早期有点麻烦,传值,sessi ...
-- by bizzad -
基于myfaces 1.1.x,seam 1 ...
如果部署在上层,那么应用不管如何顺序启动,你的jsf相关类会和ibm-jsf类在 ...
-- by fangshun






评论排行榜