[Building Sakai] Spring MVC Maven Archetype on Sakai 2.9.2

Matthew Jones matthew at longsight.com
Thu Jul 4 11:30:39 PDT 2013


Because of https://jira.sakaiproject.org/browse/KNL-757 spring-mvc was
removed from shared in 2.9. The best thing for compatibility is to add a
profile to your tool that has this dependency, so it will work in 2.8 or
2.9. If you just want to make a branch, you don't need this profile.

  <profiles>
    <profile>
      <id>sakai-2.9</id>

      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>

      <dependencies>
        <dependency>
          <!-- must include this in the war for sakai 2.9+ -->
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <scope>compile</scope>
        </dependency>
      </dependencies>
    </profile>

To be compatible with trunk, there was dependencies against general spring
and hibernate. I should add that info about spring-webmvc to this page
(maybe it's already somewhere), but I figured all tools were already
upgraded.
https://confluence.sakaiproject.org/pages/viewpage.action?pageId=83036734



On Thu, Jul 4, 2013 at 1:48 PM, Jesus Federico
<jesus at blindsidenetworks.com>wrote:

> Hi,
>
> I have a tool that was created using the sakai spring mvc maven archetype
> https://confluence.sakaiproject.org/display/BOOT/Sakai+Spring+MVC+Maven+Archetype.
>
>
> It works fine on Sakai 2.8.x but when I install it on Sakai 2.9.2 it
> doesn't work.
>
> I created a new tool from the scratch but and I had the same result.
>
>
> 2013-07-04 13:41:12,488  INFO
> ContainerBackgroundProcessor[StandardEngine[Catalina]]
> org.apache.catalina.startup.HostConfig - Deploying web application archive
> test-tool.war
> 2013-07-04 13:41:12,544  INFO
> ContainerBackgroundProcessor[StandardEngine[Catalina]]
> org.sakaiproject.util.ToolListener - registering tools from resource:
> /tools/sakai.sakai-spring-maven-archetype.xml
> 2013-07-04 13:41:12,545  INFO
> ContainerBackgroundProcessor[StandardEngine[Catalina]]
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/test-tool]
> - Initializing Spring root WebApplicationContext
> 2013-07-04 13:41:12,550  INFO
> ContainerBackgroundProcessor[StandardEngine[Catalina]]
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/test-tool]
> - Marking servlet springapp as unavailable
> 2013-07-04 13:41:12,550 ERROR
> ContainerBackgroundProcessor[StandardEngine[Catalina]]
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/test-tool]
> - Error loading WebappClassLoader
>   delegate: false
>   repositories:
>     /WEB-INF/classes/
> ----------> Parent Classloader:
> org.apache.catalina.loader.StandardClassLoader at 1309de5b
>  org.springframework.web.servlet.DispatcherServlet
> java.lang.ClassNotFoundException:
> org.springframework.web.servlet.DispatcherServlet
>         at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1438)
>         at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
>         at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1068)
>         at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
>         at
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3996)
>         at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4266)
>         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)
>         at
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:884)
>         at
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:737)
>         at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
>         at
> org.apache.catalina.startup.HostConfig.check(HostConfig.java:1271)
>         at
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:301)
>         at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
>         at
> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1306)
>         at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)
>         at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
>         at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
>         at java.lang.Thread.run(Thread.java:679)
> 2013-07-04 13:41:12,550 ERROR
> ContainerBackgroundProcessor[StandardEngine[Catalina]]
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/test-tool]
> - Servlet /test-tool threw load() exception
> java.lang.ClassNotFoundException:
> org.springframework.web.servlet.DispatcherServlet
>         at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1438)
>         at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
>         at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1068)
>         at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
>         at
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3996)
>         at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4266)
>         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)
>         at
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:884)
>         at
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:737)
>         at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
>         at
> org.apache.catalina.startup.HostConfig.check(HostConfig.java:1271)
>         at
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:301)
>         at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
>         at
> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1306)
>         at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)
>         at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
>         at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
>         at java.lang.Thread.run(Thread.java:679)
>
> I think it might be necessary to update some dependencies but I am not
> sure what exactly.
>
> Have some of you experienced this issue when migrating your tools?
>
> And by the way, this Sakai 2.9.2 is running on tomcat 5.5.33/java 6 and I
> am still using maven 2.2.1
>
> Any clue will be very much appreciated.
>
> Thanks,
>
>
> *Jesus Federico*
>
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to
> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
> "unsubscribe"
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20130704/7edfbb91/attachment.html 


More information about the sakai-dev mailing list