2011-05-04 133 views
1

到目前为止,我一直在Tomcat 6.0上运行JSF 1.2应用程序。 我现在已经在Tomcat的另一个实例(用于测试)上启动了一个新的JSF 2.0项目。在同一个Tomcat服务器上部署JSF 1.2和JSF 2.0应用程序

我想在主Tomcat 6.0服务器上部署新的JSF 2.0项目,并面临着“告诉”新项目使用2.0库,而旧项目应该继续使用旧库的挑战。

所有库都是通用的每个服务器(虽然构建路径显然是每个项目)。 我想知道的是如何告诉项目使用JSF 2.0 API。

谢谢!

回答

3

Tomcat并未随JSF一起提供,因此只需为每个项目分配自己正确的版本化JSF库在/WEB-INF/lib应该没有任何问题。

更新我忽略了JSF 1.2库是由Tomcat自己提供的。在这种情况下,您需要将Tomcat中的JSF 1.2库升级到JSF 2.0库。 JSF 2.0完全向后兼容JSF 1.2。对于Tomcat服务器,不可能以某种方式配置Web应用程序,以使用Web应用程序提供的库来覆盖Tomcat提供的库。你将最终在类路径中发生冲突。

+0

我们部署时没有库。正如我所提到的,“所有的库都是每台服务器都很常见”。 – Ben 2011-05-04 12:20:07

+0

从一开始这是一个坏主意。我不太明白吉宝的答案如何解决这个问题。由Tomcat提供的仍然优先于webapp中的。更成熟的appservers有特定的配置设置,让webapps覆盖服务器提供的库,另请参见http://stackoverflow.com/questions/5815623/jsf-2-issues-in-application-servers无论如何,你应该能够继续使用您的JSF 1.2应用程序,同时将Tomcat-libs从1.2更新到2.0。 JSF 2.0完全向后兼容JSF 1.2。 – BalusC 2011-05-04 12:25:23

+0

这样做是为了减少部署的大小。 还有别的办法吗?我没有看到如何通过构建路径引用库并不比在war文件中包含实际库更好。 (看起来像一个库复制混乱) 仅仅是因为没有更好的解决方案? – Ben 2011-05-04 12:31:23

0

那么你可以把JSF罐子出来Tomcat的类路径&的包,每个WAR,比其他所需要的版本,我不认为你将能够做到这一点...

相关问题