在我们的应用程序中,我们使用JSF2和weblogin10.3.4,
weblogic10.3.4附带JSF 2.0 ..我们在weblogic中将JSF2.0部署为库。
但是当我们部署jsf应用程序时,weblogic会报告ClassNotFound以获取特定于JSF的类。
之前有人试过这个......
由于 维杰
答案 0 :(得分:0)
创建一个weblogic-application.xml,如下所示。这迫使在应用程序库而不是weblogic jar下加载类。
WebContent-> META-INF-> WebLogic的application.xml中
<weblogic-application xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<prefer-application-packages>
<package-name>javax.faces.*</package-name>
<package-name>com.sun.faces.*</package-name>
</prefer-application-packages>
</weblogic-application>
如果你想使用EL2.2,你需要将el 2.2罐添加到setDomainEnv文件中,它位于“bea11 \ user_projects \ domains \ base_domain \ bin”
添加以下行:
设置PATCH_CLASSPATH = D:\ dev \ lib \ el-impl-2.2.jar; D:\ dev \ lib \ el-api-2.2.jar;
编辑后的文件如下所示:
if "%PRODUCTION_MODE%"=="true" (
set debugFlag=false
set testConsoleFlag=false
set iterativeDevFlag=false
set logErrorsToConsoleFlag=false
)
@REM If you want to override the default Patch Classpath, Library Path and Path for this domain,
@REM Please uncomment the following lines and add a valid value for the environment variables
@REM set PATCH_CLASSPATH=[myPatchClasspath] (windows)
@REM set PATCH_LIBPATH=[myPatchLibpath] (windows)
@REM set PATCH_PATH=[myPatchPath] (windows)
@REM PATCH_CLASSPATH=[myPatchClasspath] (unix)
@REM PATCH_LIBPATH=[myPatchLibpath] (unix)
@REM PATCH_PATH=[myPatchPath] (unix)
set PATCH_CLASSPATH=D:\dev\lib\el-impl-2.2.jar;D:\dev\lib\el-api-2.2.jar;
call "%WL_HOME%\common\bin\commEnv.cmd"
set WLS_HOME=%WL_HOME%\server
祝你好运
答案 1 :(得分:0)
在web-inf / weblogic.xml中添加以下内容解决了问题
<wls:weblogic-version>10.3.4</wls:weblogic-version>
<wls:context-root>/</wls:context-root>
<wls:library-ref>
<wls:library-name>jsf</wls:library-name>
<wls:specification-version>2.0</wls:specification-version>
<wls:implementation-version>1.0.0.0_2-0-2</wls:implementation-version>
<wls:exact-match>true</wls:exact-match>
</wls:library-ref>