我已经成功地在WebSphere自由配置文件(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)JSF2.2是在server.xml中启用的:
<feature>jsf-2.2</feature>该类存在于:
wlp/lib/com.ibm.ws.jsf.2.2_1.0.14.jar关于API类型visibilty,我的共享库和应用程序都有spec,ibm-api,api,third-party。
如果我试图配置MyFaces的另一个实现,我就开始获得ClassCastException。
我需要改变什么才能做到这一点?
发布于 2016-11-14 14:34:09
jsf-2.2特性没有将MyFaces实现类公开为任何类型的api,这就是为什么尝试执行Class.forName的尝试无法工作的原因。
发布于 2016-11-16 20:59:45
嗨,您应该能够通过使用RendererWrapper和RenderKitWrapper的组合来实现自己的渲染器。这些类允许您将特定行为添加到现有的Renderer和RenderKit实例中。
https://stackoverflow.com/questions/40584059
复制相似问题