我正在使用在tomcat服务器上运行的JSF 2.0构建Java Web App。我正在使用facelets1.1.10
。我最近看到了哪些主要内容可以做,而且我对此印象非常深刻。所以我想在我的网络项目中添加primefaces。
我从网站下载了primefaces3.2.jar
并将其添加到我的项目lib文件夹(我保留了所有的jar)。并将其添加到我的构建路径中。但是当测试它以查看primefaces是否有效时,我得到以下错误:
严重:加载库时出错: 罐子:文件:/ C:/tomcat/wtpwebapps/miloWeb/WEB-INF/lib/primefaces-3.2.jar /META-INF/primefaces-p.taglib.xml java.io.IOException:解析时出错 [JAR:文件:/ C:/tomcat/wtpwebapps/miloWeb/WEB-INF/lib/primefaces-3.2.jar /META-INF/primefaces-p.taglib.xml]: 在 com.sun.facelets.compiler.TagLibraryConfig.create(TagLibraryConfig.java:397) 在 com.sun.facelets.compiler.TagLibraryConfig.loadImplicit(TagLibraryConfig.java:418) 在com.sun.facelets.compiler.Compiler.initialize(Compiler.java:86) 在com.sun.facelets.compiler.Compiler.compile(Compiler.java:103)at com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:192) 在 com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:141) 在 com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:93) 在 com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503) 在 com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:553) 在 com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) 在com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 在javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:349) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:203) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242) 在 org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:259) 在 org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:237) 在 org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:281) 在java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(未知 来自java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知 java)在java.lang.Thread.run(未知来源)引起: org.xml.sax.SAXException:错误处理 [JAR:文件:/ C:/tomcat/wtpwebapps/miloWeb/WEB-INF/lib/primefaces-3.2.jar /META-INF/primefaces-p.taglib.xml@5,17] 在 com.sun.facelets.compiler.TagLibraryConfig $ LibraryHandler.error(TagLibraryConfig.java:363) 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知 来源)at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.rootElementSpecified(未知 来源)at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(未知 来源)at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl $ ContentDriver.scanRootElementHook(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDriver.next(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl $ PrologDriver.next(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(未知 来源)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知 来源)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知 来源)at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(未知 来源)at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(未知 来源)at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl $ JAXPSAXParser.parse(未知 来自)javax.xml.parsers.SAXParser.parse(未知来源)at javax.xml.parsers.SAXParser.parse(未知来源)at com.sun.facelets.compiler.TagLibraryConfig.create(TagLibraryConfig.java:394) ......还有31个
这是什么意思?我需要做些什么才能保留facelets并添加primefaces?
答案 0 :(得分:3)
是的,它正在使用Facelets ......(Facelets 2.0)
通过 BalusC Migrating from JSF 1.2 to JSF 2.0
查看详细解答来自原始 BalusC 的一些代码段
。如果您使用 Facelets 1.x 作为视图技术并想要使用提供的 Facelets 2.0 的JSF 2.0,那么您需要执行以下附加步骤:
/WEB-INF/lib
删除Facelets 1.x JAR。FaceletViewHandler
移除Facelets 1.x faces-config.xml
。FaceletViewHandler
实施,以扩展[ViewHandlerWrapper
] [2]。<context-param>
中与Facelets 2.0中默认值相关的任何Facelets 1.x相关web.xml
值,例如javax.faces.DEFAULT_SUFFIX
,其值为{{ 1}}。更新现有Facelet taglib XML的根声明,以符合Facelets 2.0。
*.xhtml
答案 1 :(得分:0)