我有一个应用程序war文件,在war文件中集成了许多OSGi软件包。我们的应用程序正在使用JSF 1.x版本,并试图在WebLogic 12c上部署该war文件。部署很好,由于JSF冲突,应用程序无法正常工作。尝试了weblogic12c文档中提供的所有方法,以使用JSF 1.X,而不是默认的JSF2.X。仍然找不到任何解决方案。通过WebLogic Classloader Analysis Tool分析了加载的类。 JSF-api.jar和JSF-impl.jar存在于war文件的WEB-INF / lib中,但仍然从WebLogic服务器glassfish.jsf.jar(C:/ Oracle / Middleware / Oracle_Home / wlserver / modules / glassfish.jsf.jar)
尝试过滤类加载选项,共享库选项,仍然从glassfish.jsf.jar而不是war / WEB-INF / lib加载JSF类。
还在domain / lib文件夹中添加了jsf-api.jar和jsf-impl.jar,仍然无法正常工作。
在weblogic.xml文件的以下行中添加了
<prefer-application-packages>
<package-name>javax.faces.*</package-name>
<package-name>com.sun.faces.*</package-name>
<package-name>com.bea.faces.*</package-name>
<package-name>javax.servlet.jsp.*</package-name>
</prefer-application-packages>
<prefer-application-resources>
<resource-name>javax.faces.*</resource-name>
<resource-name>com.sun.faces.*</resource-name>
<resource-name>com.bea.faces.*</resource-name>
<resource-name>javax.servlet.jsp.*</resource-name>
<resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
<resource-name>META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider</resource-name>
<resource-name>META-INF/resources/javax.faces/jsf.js</resource-name>
</prefer-application-resources>
不过,仍然无法从war / WEB-INF / lib目录中加载JSF类。
还有其他方法可以覆盖从WebLogic服务器加载的glassfish.jsf.jar。