我有一个网络应用程序。它在iosx上运行良好。但是如果我将项目(mavenproject)导入virtualbox到Windows10(使用git克隆并使用mavenproject导入eclipse)。如果我想上传一些东西到服务器,我会得到一个错误。“请求的资源不可用。”为了查看上传页面,我使用了以下控制器:
@RequestMapping(value = "/erstellen", method = RequestMethod.GET)
public String zeigErstellenForm() {
System.out.println("im here");
return "dateien_upload_erstellen";
}
它可以看到上传页,所以我猜这个函数被调用,但它不打印"im here"。我不明白发生了什么。
浏览器错误:
类型异常报告
消息请求处理失败;嵌套的异常是java。lang.NullPointerException
说明服务器遇到内部错误,无法满足此请求。
异常org.springframework.web.util.NestedServlet异常:请求处理失败;嵌套异常java.lang.NullPointerExctureorg.springframework.web.servlet.FrameworkServlet.process请求(FrameworkServlet.java:981)org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871)javax.servlet.http.HttpServlet.service(HttpServlet.java:648)org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)javax.servlet.http.HttpServlet.service(HttpServlet.java:729)org.apache.tomcat.websocket.server.WsFilter.do滤波器(WsFilter.java:52)
根本原因java.lang.NullPointerExc农田de.bla.blabla.服务。OrdnerErstellen.namePruefen(OrdnerErstellen.java:52)de.bla.blabla.服务。OrdnerErstellen.random名称(OrdnerErstellen.java:33)de.bla.blabla.服务。OrdnerErstellen。OrdnerErstellen.java:17)de.bla.blabla.控制器。DateiUploadController.save(DateiUploadController.java:52)sun.reflect.NativeMEDAccessorImpl.invoke0(本地方法)sun.reflect.NativeMEDAccessorImpl.invoke(未知来源)sun.reflect.委托--plhd--18/>Method.invoke(未知来源)org. springframework. web. bind.注释. support。HandlerMETHODInvoker. invkeHandlermethod(HandlerMETHODInvoker. java: 178)org. springframework. web. servlet. mvc.注释。注解:org. springframework. web. servlet. mvc.处理(AnnotationMEDHandlerAdapter. java: 432)org. springframework. web. servlet.DispatcherServlet. doDispatch(DispatcherServlet. java: 959)org. springframework. web. servlet.DispatcherServlet. doService(DispatcherServlet. java: 893)org. springframework. web. servlet.处理请求(FrameworkServlet. java: 969)org. springframework. web. servlet。. doPost(FrameworkServlet. java: 871)javax. servlet. http.服务(HttpServlet. java: 648)org. springframework. web. servlet.服务(FrameworkServlet. java: 845)javax. servlet. http.服务(HttpServlet. java: 729)org. apache. tomcat. webocket. server.WsFilter. doFilter(WsFilter. java: 52)
eclipse中的错误:
SCHWERWIEGEND:Servlet。路径为[/testMaven]的上下文中servlet[test]的service()引发了异常[请求处理失败;嵌套异常为java.lang.NullPointerException],根本原因为java。de.bla处的lang.NullPointerException。布拉布拉。服务。奥德内勒斯泰伦。位于de.bla的namePruefen(ordnerrestellen.java:52)。布拉布拉。服务。奥德内勒斯泰伦。位于de.bla的randomName(ordnerrestellen.java:33)。布拉布拉。服务。奥德内勒斯泰伦。(ordnerrestellen.java:17)在de.bla。布拉布拉。控制器。DateiUploadController。在sun上保存(DateiUploadController.java:52)。反映NativeMethodAccessorImpl。在sun上调用0(本机方法)。反映NativeMethodAccessorImpl。在sun上调用(未知源)。反映DelegatingMethodAccessorImpl。在java上调用(未知源)。朗。反思。方法在组织中调用(未知源)。springframework。网状物绑定注释。支持HandlerMethodInvoker。org上的invokeHandlerMethod(HandlerMethodInvoker.java:178)。springframework。网状物servlet。mvc。注释。注释方法HandlerAdapter。org上的invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:444)。springframework。网状物servlet。mvc。注释。注释方法HandlerAdapter。handle(AnnotationMethodHandlerAdapter.java:432)位于org。springframework。网状物servlet。调度员服务。doDispatch(DispatcherServlet.java:959)位于org。springframework。网状物servlet。调度员服务。doService(DispatcherServlet.java:893)位于org。springframework。网状物servlet。FrameworkServlet。processRequest(FrameworkServlet.java:969)位于org。springframework。网状物servlet。FrameworkServlet。javax上的doPost(FrameworkServlet.java:871)。servlet。http。HttpServlet。服务(HttpServlet.java:648)位于org。springframework。网状物servlet。FrameworkServlet。javax上的服务(FrameworkServlet.java:845)。servlet。http。HttpServlet。服务(HttpServlet.java:729)位于org。阿帕奇。卡塔琳娜。果心ApplicationFilterChain。org上的internalDoFilter(ApplicationFilterChain.java:292)。阿帕奇。卡塔琳娜。果心ApplicationFilterChain。doFilter(ApplicationFilterChain.java:207)位于org。阿帕奇。公猫websocket。服务器WsFilter。doFilter(WsFilter.java:52)位于org。阿帕奇。卡塔琳娜。果心ApplicationFilterChain。org上的internalDoFilter(ApplicationFilterChain.java:240)。阿帕奇。卡塔琳娜。果心ApplicationFilterChain。doFilter(ApplicationFilterChain.java:207)位于org。阿帕奇。卡塔琳娜。果心标准包装阀。在org上调用(StandardWrapperValve.java:212)。阿帕奇。卡塔琳娜。果心标准连接阀。在org上调用(StandardContextValve.java:106)。阿帕奇。卡塔琳娜。验证者。AuthenticatorBase。在org调用(AuthenticatorBase.java:502)。阿帕奇。卡塔琳娜。果心标准阀门。在org上调用(StandardHostValve.java:141)。阿帕奇。卡塔琳娜。阀门。错误报告阀。在org调用(ErrorReportValve.java:79)。阿帕奇。卡塔琳娜。阀门。抽象逻辑阀。在org上调用(AbstractAccessLogValve.java:616)。阿帕奇。卡塔琳娜。果心标准引擎版本。在org上调用(StandardEngineValve.java:88)。阿帕奇。卡塔琳娜。连接器。郊狼适应者。服务(CoyoteAdapter.java:522)位于org。阿帕奇。郊狼。http11。抽象http11处理器。进程(AbstractHttp11Processor.java:1095)位于org。阿帕奇。郊狼。AbstractProtocol$AbstractConnectionHandler。org上的进程(AbstractProtocol.java:672)。阿帕奇。公猫util。网NioEndpoint$SocketProcessor。doRun(NioEndpoint.java:1500)位于org。阿帕奇。公猫util。网NioEndpoint$SocketProcessor。在java上运行(NioEndpoint.java:1456)。util。同时发生的线程池执行器。java上的runWorker(未知源)。util。同时发生的线程池执行器$Worker。在组织上运行(未知源)。阿帕奇。公猫util。线程。TaskThread$WrappingRunnable。在java上运行(TaskThread.java:61)。朗。丝线。运行(未知源)
我使用:
Servlet:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="de.bla.blabla.Controller"/>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
<mvc:annotation-driven />
<mvc:resources mapping="/resources/**" location="/resources/"/>
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
网状物xml:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>test</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>*.html</url-pattern>
<url-pattern>/download</url-pattern>
<url-pattern>/read</url-pattern>
</servlet-mapping>
</web-app>
项目中没有错误。我把所有东西都打扫干净。
您不能在JSP中显示sysout消息!
在webapp的WEB-INF/jsp
目录中,创建一个文件index.jsp
并在这些JSP中写入helloWorld消息。
除非你错过了别的东西,否则它会起作用的。
或者,如果要使用该模型,请在控制器内部执行以下操作:
ModelAndView mav = new ModelAndView();
mav.addObject("message", "hello world");
return mav;
对于nullpointer异常,我将尝试使用eclipse平台进行远程调试,并在以下行中设置一些断点:
de.bla.blabla.服务。OrdnerErstellen.namePruefen(OrdnerErstellen.java:52)
在de.bla.blabla.服务。OrdnerErstellen.random名称(OrdnerErstellen.java:33)
在de.bla.blabla.服务。OrdnerErstellen。OrdnerErstellen.java:17)
在de.bla。布拉布拉。控制器。DateiUploadController。保存(DateiUploadController.java:52)