Tomcat HTTP状态500-请求处理失败

Tomcat HTTP状态500-请求处理失败,tomcat,web-applications,spring-mvc,jetty,aether,Tomcat,Web Applications,Spring Mvc,Jetty,Aether,我正在尝试制作一个网络应用程序,但遇到了一个问题 首先,我在Jetty上运行了这个webapp,一切都很好。现在,当我切换到ApacheTomcat7时,出现了错误 我收到的错误是 org.springframework.web.util.NestedServletException:请求处理失败;嵌套的异常是java.lang.NullPointerExceptionorg.springframework.web.servlet.FrameworkServlet.processRequest(

我正在尝试制作一个网络应用程序,但遇到了一个问题

首先,我在Jetty上运行了这个webapp,一切都很好。现在,当我切换到ApacheTomcat7时,出现了错误

我收到的错误是

org.springframework.web.util.NestedServletException:请求处理失败;嵌套的异常是java.lang.NullPointerExceptionorg.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:681)org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585)javax.servlet.http.HttpServlet.service(HttpServlet.java:647)javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

根本原因是

java.lang.NullPointerExceptionorg.eclipse.aether.examples.util.Booter.newRepositorySystemSession(Booter.java:41)
所以我转到那个位置,很明显我发现它是空的

所以我想知道Tomcat在做什么,让jetty没有的东西变成空值

这是返回null的填充

public class ManualRepositorySystemFactory
{

public static RepositorySystem newRepositorySystem()
{
    /*
     * Aether's components implement org.eclipse.aether.spi.locator.Service to ease manual wiring and using the
     * prepopulated DefaultServiceLocator, we only need to register the repository connector factories.
     */
    DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
    locator.addService( RepositoryConnectorFactory.class, FileRepositoryConnectorFactory.class );
    locator.addService( RepositoryConnectorFactory.class, WagonRepositoryConnectorFactory.class );
    locator.setServices( WagonProvider.class, new ManualWagonProvider() );

    //THis is the line that is returning a null
    return locator.getService( RepositorySystem.class ); 
}

}
编辑


看起来您发布的代码与您提供的(最小)堆栈跟踪不匹配。你是否重新命名了某个东西,或者你发布了错误的代码?我发布了这些代码,因为这就是从方法调用的内容。我将编辑并更新导致错误的实际行。那么第41行在哪里,或者是哪一行导致NPE?用很少的信息调试你的代码并不容易。很抱歉,缺少信息,我不想让你们负担过重。你们将得到可能不相关的信息。所以现在第41行转到session.setLocalRepositoryManager(system.newLocalRepositoryManager(session,localRepo))。系统是给出错误的空值。现在,如果您查看公共类手册RepositorySystemFactory。行返回定位器.getService(RepositorySystem.class)返回空值。因此,我在错误发生之前输入system.out.printed RepositorySystem.class,并且我实际上收到了信息。因此我不确定locator.getService为什么无法接收任何值?
public class Booter
{

public static RepositorySystem newRepositorySystem()
{
    return org.eclipse.aether.examples.manual.ManualRepositorySystemFactory.newRepositorySystem();
    // return org.eclipse.aether.examples.guice.GuiceRepositorySystemFactory.newRepositorySystem();
    // return org.eclipse.aether.examples.plexus.PlexusRepositorySystemFactory.newRepositorySystem();
}

public static DefaultRepositorySystemSession newRepositorySystemSession( RepositorySystem system )
   {
    DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();

   // LocalRepository localRepo = new LocalRepository( "target/local-repo" );

    LocalRepository localRepo = new LocalRepository("target/local-repo/"); // For testing purposes dls to this directory, give an option later
    ///Users/Shared/dependencyBuilder/

    session.setLocalRepositoryManager( system.newLocalRepositoryManager( session, localRepo ) ) // Line that gives me the error