2014-06-16 34 views
0

我現在面臨一個很難得到一個Spring項目,在Adobe CQ5運行,這是我的堆棧跟蹤拋出java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener在Adobe CQ5

ERROR [定時器3] org.apache.catalina.core.ContainerBase。[Catalina]。[localhost]。[/ springws]配置類org.springframework.web.context.ContextLoaderListener的應用程序監聽器時出錯java.lang.ClassNotFoundException:org。 springframework.web.context.ContextLoaderListener at java.net.URLClassLoader $ 1.run(Unknown Source) at java.net.URLClassLoader $ 1.run(Unknown Source) (未知來源) at java.net.FactoryURLClassLoader.loadClass(Unknown Source)在java.lang.ClassLoader.loadClass(未知源) ) at java.lang.ClassLoader.loadClass(Unknown Source) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3712) at org.apache.catalina.core.StandardContext.start(StandardContext。 java:4216) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) at org.apache。 catalina.core.StandardHost.addChild(StandardHost.java:544) 在org.springframework.osgi.web.deployer.tomcat.TomcatWarDeployer.startCatalinaContext(TomcatWarDeployer.java:144) 在org.springframework.osgi.web.deployer.tomcat.TomcatWarDeployer.startDeployment(TomcatWarDeployer.java:133) 在org.springframework.osgi.web.deployer.support.AbstractWarDeployer.deploy(AbstractWarDeployer.java:93) at org.springframework.osgi.web.extender.internal.activator.WarLoaderListener $ DeploymentManager $ DeployTask.doRun(WarLoaderListener.java: 257) 在org.springframework.osgi.web.extender.internal.activator.WarLoaderListener $ $的DeploymentManager BaseTask.run(WarLoaderListener.java:215) 在org.springframework.scheduling.timer.DelegatingTimerTask.run(DelegatingTimerTask.java: 70) at java.util.TimerThread.mainLoop(Unknown Source) 在java.util.TimerThread.run(未知來源)

web.xml文件是

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/osgi-context.xml</param-value> 
</context-param> 
<context-param> 
    <param-name>contextClass</param-name> 
    <param-value> 
org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext 
    </param-value> 
</context-param> 
<listener> 
    <listener-class> 
     org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
</listener> 
<servlet> 
    <servlet-name>springmvc</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>2</load-on-startup> 
    <init-param> 
     <param-name>contextClass</param-name>                  
     <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value> 
    </init-param> 
    </servlet> 
<servlet-mapping> 
    <servlet-name>springmvc</servlet-name> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping> 

POM文件是

<properties> 
    <springdm.version>1.2.0</springdm.version> 
    <spring.version>2.5.6</spring.version> 
    <equinox.version>3.5.1.R35x_v20090827</equinox.version> 
     <felix.bundle.plugin.version>2.0.1</felix.bundle.plugin.version> 
</properties> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.4.3</version> 
      <configuration> 
       <!-- need to fork otherwise some tests contexts are shared --> 
       <forkMode>always</forkMode> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.felix</groupId> 
      <artifactId>maven-bundle-plugin</artifactId> 
      <version>${felix.bundle.plugin.version}</version> 
      <extensions>true</extensions> 
      <configuration> 
       <!-- manifestLocation>META-INF</manifestLocation --> 
       <instructions> 

        <!-- <Private-Package>com.manning.sdmia.web</Private-Package> --> 
        <Import-Package> 
         org.springframework.stereotype;version="2.5.6", 
         org.springframework.ui;version="2.5.6", 
         org.springframework.web.bind.annotation;version="2.5.6", 
         org.springframework.web.servlet.view;version="2.5.6", 
         org.springframework.beans.factory.annotation;version="2.5.6", 
         org.springframework.osgi.web.context.support" 

        </Import-Package> 
        <Include-Resource>src/main/resources,src/main/webapp</Include-Resource> 
        <Web-ContextPath>springws</Web-ContextPath> 
       </instructions> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.osgi</groupId> 
     <artifactId>spring-osgi-annotation</artifactId> 
     <version>${springdm.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>3.0.5.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>org.springframework.web</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>org.springframework.web.servlet</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency>  

     <dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-support</artifactId> 
<version>2.0.8</version> 

上傳以下束在Adobe CQ5

322 Spring AOPorg.springframework.aop 3.0.6.RELEASE  Active 
332 Spring ASMorg.springframework.asm 3.0.6.RELEASE  Active 
316 Spring Beansorg.springframework.beans 3.0.6.RELEASE  Active 
317 Spring Contextorg.springframework.context 3.0.6.RELEASE  Active 
312 Spring Coreorg.springframework.core 3.0.6.RELEASE  Active 
333 Spring Expression Languageorg.springframework.expression 3.0.6.RELEASE   Active  
339 Spring Web Servletorg.springframework.web.servlet 2.5.6.SEC01  Active 
321 spring-osgi-annotationorg.springframework.osgi.extensions.annotations 1.2.1  Active 
315 spring-osgi-coreorg.springframework.osgi.core 1.2.1  Active 
311 spring-osgi-extenderorg.springframework.osgi.extender 1.2.1  Active 
318 spring-osgi-ioorg.springframework.osgi.io 1.2.1  Active 
336 spring-osgi-weborg.springframework.osgi.web 1.2.1  Active 
337 spring-osgi-web-extenderorg.springframework.osgi.web.extender 1.2.1  Active 
249 svnkit bundlecom.day.commons.osgi.wrapper.svnkit 1.3.0.0002  Active 

我是否需要上傳任何其他包? 如果您還需要完整的項目代碼,請告訴我。試着用不同的選項,但面臨着同樣的問題提前

回答

0

謝謝我不知道你在使用它CQ/AEM的版本,你在哪裏放置web.xml中。所以我假設你正在使用CQ 5.4。

您已經將OSGi容器和Web上的Spring bundle上傳了。xml是WebContainer的默認橋接,這意味着Web容器將無法識別OSGi容器上的任何包。

你可能不得不考慮Spring DM/Eclipse Gemini(藍圖)來達到你的目的。請參考Spring DM DocumentationEclipse Gemini Blueprints Documentation開始集成Spring和OSGi。如果你在Spring DM和Eclipse Gemini之間,你也可以參考article

相關問題