Tomcat HTTP状态500-请求处理失败
我正在尝试制作一个网络应用程序,但遇到了一个问题 首先,我在Jetty上运行了这个webapp,一切都很好。现在,当我切换到ApacheTomcat7时,出现了错误 我收到的错误是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(
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