留言板

jsf libraries

Vassilis Petropoulos,修改在12 年前。

jsf libraries

Junior Member 帖子: 26 加入日期: 12-4-10 最近的帖子
Hi,

where is the best place to put core jsf libs when deploying many applications?
Under each own WEB-INF/lib folder or under tomcat-6.0.26\lib\ext folder?

TIA,
Vassilis
thumbnail
David H Nebinger,修改在12 年前。

RE: jsf libraries

Liferay Legend 帖子: 14918 加入日期: 06-9-2 最近的帖子
The latter, especially if you have a bunch of JSF portlets. Putting it in each individual portlet will increase the memory consumed by each portlet as it will be loading it's own copy of the classes.
Vassilis Petropoulos,修改在12 年前。

RE: jsf libraries

Junior Member 帖子: 26 加入日期: 12-4-10 最近的帖子
hi,
thanks for your quick response!

In addition, what about portletfaces bridge libraries?
Should they be stored independently for each app or in one place for all??? For the latter, should I expect any class loading issues???

My situation -problematic- is as follows:
- Live production system - which cannot be easily touched/altered....
- cluster with 2 servers
- server A runs app1 and server B runs app1 and app2
- The WEB/lib dir exactly the same for the two apps
- server A works fine
- problematic behavior only for server B resulting: java.lang.ClassCastException: com.liferay.portlet.ResourceResponseImpl cannot be cast to javax.portlet.StateAwareResponse

From the logs, I have observed that the above error occurs when I have two -and more- almost concurrent ajax(?) requests for the two different apps. My first guess points to class loading issues. Do you agree? Do you have any other intuition?



thanks a lot
Vassilis
thumbnail
Neil Griffin,修改在12 年前。

RE: jsf libraries

Liferay Legend 帖子: 2655 加入日期: 05-7-27 最近的帖子
Would it be possible for you to try Liferay Faces Bridge 3.0.0-BETA1 in your test environment? There have been many changes since PortletFaces Bridge 2.0.x and there is a chance that your ClassCastException could go away, because the new bridge adheres more closely to the JSR 329 standard. I can't promise, but there is a chance.
http://www.liferay.com/community/liferay-projects/liferay-faces

A recommended practice would be to put common libraries in the global classpath if you can. Java EE compliant app servers like GlassFish and JBoss will include JSF (mojarra) in the global classpath out-of-the-box. For some JARs though it doesn't work and you have to put the JARs back in WEB-INF/lib. I recall that this was the case with ICEfaces 1.8 but I don't know if that got fixed for ICEfaces 2.x/3.x.