MyFaces 和 WebSphere Liberty Profile (ClassNotFoundException)
MyFaces and WebSphere Liberty Profile (ClassNotFoundException)
我已经在 WebSphere Liberty Profile (16.0.0.3) 上成功部署了我的应用程序,但是当我尝试使用它时,出现以下异常:
java.lang.ClassNotFoundException: org.apache.myfaces.renderkit.html.HtmlFormRenderer
at com.ibm.ws.classloading.internal.AppClassLoader.findClassCommonLibraryClassLoaders(AppClassLoader.java:488)
at com.ibm.ws.classloading.internal.AppClassLoader.findClass(AppClassLoader.java:271)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at com.ibm.ws.classloading.internal.AppClassLoader.findOrDelegateLoadClass(AppClassLoader.java:466)
at com.ibm.ws.classloading.internal.AppClassLoader.loadClass(AppClassLoader.java:438)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at pt.sibs.epms.ecc.renderer.HtmlFormRenderer.getRenderer(HtmlFormRenderer.java:54)
JSF 2.2 在 server.xml:
中启用
<feature>jsf-2.2</feature>
并且 class 存在于:
wlp/lib/com.ibm.ws.jsf.2.2_1.0.14.jar
关于 API 类型可见性,我的共享库和应用程序都有 spec,ibm-api,api,third-party
。
如果我尝试配置 MyFaces 的另一个实现,我开始得到 ClassCastException
。
我需要更改什么才能使这项工作正常进行?
jsf-2.2 功能不会将 MyFaces 实现 类 公开为任何类型的 api,这就是为什么 Class.forName 尝试不起作用的原因。
您好,您应该能够通过使用 RendererWrapper and the RenderKitWrapper 的组合来实现您自己的渲染器。这些 类 允许您向现有 Renderer 和 RenderKit 实例添加专门的行为。
我已经在 WebSphere Liberty Profile (16.0.0.3) 上成功部署了我的应用程序,但是当我尝试使用它时,出现以下异常:
java.lang.ClassNotFoundException: org.apache.myfaces.renderkit.html.HtmlFormRenderer
at com.ibm.ws.classloading.internal.AppClassLoader.findClassCommonLibraryClassLoaders(AppClassLoader.java:488)
at com.ibm.ws.classloading.internal.AppClassLoader.findClass(AppClassLoader.java:271)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at com.ibm.ws.classloading.internal.AppClassLoader.findOrDelegateLoadClass(AppClassLoader.java:466)
at com.ibm.ws.classloading.internal.AppClassLoader.loadClass(AppClassLoader.java:438)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at pt.sibs.epms.ecc.renderer.HtmlFormRenderer.getRenderer(HtmlFormRenderer.java:54)
JSF 2.2 在 server.xml:
中启用<feature>jsf-2.2</feature>
并且 class 存在于:
wlp/lib/com.ibm.ws.jsf.2.2_1.0.14.jar
关于 API 类型可见性,我的共享库和应用程序都有 spec,ibm-api,api,third-party
。
如果我尝试配置 MyFaces 的另一个实现,我开始得到 ClassCastException
。
我需要更改什么才能使这项工作正常进行?
jsf-2.2 功能不会将 MyFaces 实现 类 公开为任何类型的 api,这就是为什么 Class.forName 尝试不起作用的原因。
您好,您应该能够通过使用 RendererWrapper and the RenderKitWrapper 的组合来实现您自己的渲染器。这些 类 允许您向现有 Renderer 和 RenderKit 实例添加专门的行为。