首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache + Pax + Primefaces: ClassNotFoundException FacesServlet

Apache + Pax + Primefaces: ClassNotFoundException FacesServlet
EN

Stack Overflow用户
提问于 2014-03-20 11:03:53
回答 1查看 435关注 0票数 0

我试图在felix框架(4.2.1)上用pax (3.0.5)部署一个简单的primefaces (4.0)测试应用程序。但我总是得到一个ClassNotFoundException FacesServlet (和ConfigureListener)。尽管我在WEB/lib中有正确的jar文件,并且也用Bundle-ClassPath编写了它们。所以请帮帮我。

清单:

代码语言:javascript
复制
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: testprime2
Bundle-SymbolicName: testprime2
Bundle-Version: 1.0.0.qualifier
Import-Package: javax.servlet, javax.servlet.http
Bundle-ClassPath: WEB_INF/classes, lib/jstl-1.2.jar, lib/primefaces-4.0.jar, lib/javax.faces.jar
Web-ContextPath: /testprime2
Webapp-Context: /testprime2

web.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

  <display-name>testprime2</display-name>

  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>

  <context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>

  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>

</web-app>

错误输出:

代码语言:javascript
复制
6280 [pool-1-thread-1] ERROR org.ops4j.pax.web.extender.war.internal.RegisterWeb
AppVisitorWC - Registration exception. Skipping.
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener not fou
nd by testprime2 [39]
        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDele
gation(BundleWiringImpl.java:1532)
        at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringIm
pl.java:75)
        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadCla
ss(BundleWiringImpl.java:1955)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1844)
        at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:937)
        at org.ops4j.pax.swissbox.core.BundleClassLoader.findClass(BundleClassLo
ader.java:176)
        at org.ops4j.pax.swissbox.core.BundleClassLoader.loadClass(BundleClassLo
ader.java:194)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorHS.loadC
lass(RegisterWebAppVisitorHS.java:244)
        at org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorHS.newIn
stance(RegisterWebAppVisitorHS.java:215)
        at org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorWC.visit
(RegisterWebAppVisitorWC.java:279)
        at org.ops4j.pax.web.extender.war.internal.model.WebApp.accept(WebApp.ja
va:644)
        at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDepende
ncyListener.register(WebAppPublisher.java:237)
        at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDepende
ncyListener.addingService(WebAppPublisher.java:182)
        at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDepende
ncyListener.addingService(WebAppPublisher.java:135)
        at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(Service
Tracker.java:932)
        at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(Service
Tracker.java:864)
        at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.jav
a:256)
        at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.ja
va:183)
        at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:317)
        at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261)
        at org.ops4j.pax.web.extender.war.internal.WebAppPublisher.publish(WebAp
pPublisher.java:101)
        at org.ops4j.pax.web.extender.war.internal.WebObserver.deploy(WebObserve
r.java:213)
        at org.ops4j.pax.web.extender.war.internal.WebObserver$1.doStart(WebObse
rver.java:175)
        at org.ops4j.pax.web.extender.war.internal.extender.SimpleExtension.star
t(SimpleExtension.java:58)
        at org.ops4j.pax.web.extender.war.internal.extender.AbstractExtender$1.r
un(AbstractExtender.java:266)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$201(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
6304 [pool-1-thread-1] ERROR org.ops4j.pax.web.extender.war.internal.RegisterWeb
AppVisitorWC - Registration exception. Skipping.
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet not found by t
estprime2 [39]
        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDele
gation(BundleWiringImpl.java:1532)
        at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringIm
pl.java:75)
        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadCla
ss(BundleWiringImpl.java:1955)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1844)
        at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:937)
        at org.ops4j.pax.swissbox.core.BundleClassLoader.findClass(BundleClassLo
ader.java:176)
        at org.ops4j.pax.swissbox.core.BundleClassLoader.loadClass(BundleClassLo
ader.java:194)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorHS.loadC
lass(RegisterWebAppVisitorHS.java:244)
        at org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorWC.visit
(RegisterWebAppVisitorWC.java:224)
        at org.ops4j.pax.web.extender.war.internal.model.WebApp.accept(WebApp.ja
va:664)
        at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDepende
ncyListener.register(WebAppPublisher.java:237)
        at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDepende
ncyListener.addingService(WebAppPublisher.java:182)
        at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDepende
ncyListener.addingService(WebAppPublisher.java:135)
        at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(Service
Tracker.java:932)
        at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(Service
Tracker.java:864)
        at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.jav
a:256)
        at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.ja
va:183)
        at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:317)
        at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261)
        at org.ops4j.pax.web.extender.war.internal.WebAppPublisher.publish(WebAp
pPublisher.java:101)
        at org.ops4j.pax.web.extender.war.internal.WebObserver.deploy(WebObserve
r.java:213)
        at org.ops4j.pax.web.extender.war.internal.WebObserver$1.doStart(WebObse
rver.java:175)
        at org.ops4j.pax.web.extender.war.internal.extender.SimpleExtension.star
t(SimpleExtension.java:58)
        at org.ops4j.pax.web.extender.war.internal.extender.AbstractExtender$1.r
un(AbstractExtender.java:266)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$201(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-21 07:39:22

我不确定在包中打包那些jsf包是否是个好主意。尝试将它们从战争中分离出来,特别是lib/jstl-1.2.jar。因为所需的软件包应该已经由Pax Web提供了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22530943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档