J2EE项目 本地运行无误,服务器运行,一段时间后报nullpointerException,但却不影响正常使用。
日志如下:
严重: Error processing request
java.lang.NullPointerException
at org.apache.tomcat.util.buf.CharChunk.append(CharChunk.java:355)
at org.apache.tomcat.util.http.mapper.Mapper.map(Mapper.java:738)
at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:757)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:447)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
二月 27, 2017 6:56:05 下午 org.apache.coyote.http11.AbstractHttp11Processor process
严重: Error processing request
java.lang.NullPointerException
at org.apache.tomcat.util.buf.CharChunk.append(CharChunk.java:355)
at org.apache.tomcat.util.http.mapper.Mapper.map(Mapper.java:738)
at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:757)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:447)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
网上查到的原因:
1 环境jdk和tomcat版本原因;更换版本,然并卵。
2 域名配置原因;http://www.ithao123.cn/content-928555.html
需要在server.xml中的<Engine
name="Catalina" defaultHost="localhost">标签下配置一个<Host name="localhost" >,这样他的defaultHost的值才不会被忽略,defaulthostname才会有值,这样就解决了那个tomcat运行时不时的报一个NullPointerException。
还有文章是在server.xml 中的<Engine name="Catalina" defaultHost="你的域名">结点下加HOST结点,我很傻的直接加了,然而加了服务都起不来
推荐:http://blog.youkuaiyun.com/u012906938/article/details/36718809
有结点配置,看了就明白为毛要报null指针。其实不看也能想明白,谁让我当时脑子进水了呢。
但是看看还是有好处的,解决了我的另一个问题
本地服务器正常,但服务器spring mvc 定时任务跑两次
还是域名配置问题: 见下图:
红线的地方就是域名了,蓝线的地方就是项目名了,只跑了一个项目。原因嘛,看上面推荐链接
另外还有个spring mvc多个定时任务执行的小问题: 假如之前执行的一个定时任务没结束,下面的不执行的。
最后,域名配置指定项目方法。
tomcat 域名绑定到指定的项目上,也就是说http://localhost:8080/项目名=http://域名
1 更改8080 端口为80端口
2 修改上图划红蓝线的地方(蓝线那行是添加的),要说明的是 appBase="webapps"也是会运行你的定时器的,下面子结点再运行一次,可不就运行两次么
3 服务器host文件最好改,虽然不改也没什么。