【问题标题】:Permission external jar create file tomcat权限外部jar创建文件tomcat
【发布时间】:2015-02-06 11:07:08
【问题描述】:

我的应用程序有问题。

它通过Crawler4j从网站获取数据,需要创建一些目录和文件来操作数据,但是tomcat不给权限。答案是这样的:

无法创建此文件夹:/data/crawl/root

如何配置 tomcat 以允许外部 jar 在我的应用程序中创建目录和文件?

源码可以在:https://github.com/MarcelorjOliveira/CrawlerSpring

这里是完整的堆栈跟踪

堆栈跟踪: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:405) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:349) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

根本原因

org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是 java.lang.Exception:无法创建此文件夹:/data/crawl/root org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) javax.servlet.http.HttpServlet.service(HttpServlet.java:618) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:738) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:708) org.apache.jsp.index_jsp._jspService(index_jsp.java:65) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:405) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:349) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

根本原因

java.lang.Exception:无法创建此文件夹:/data/crawl/root edu.uci.ics.crawler4j.crawler.CrawlController.(CrawlController.java:83) br.com.crawlerspring.controller.MainController.initCrawler(MainController.java:52) br.com.crawlerspring.controller.MainController.main(MainController.java:66) sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) javax.servlet.http.HttpServlet.service(HttpServlet.java:618) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:738) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:708) org.apache.jsp.index_jsp._jspService(index_jsp.java:65) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:405) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:349) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

谢谢大家。

【问题讨论】:

  • 有错误堆栈跟踪可能很有用。

标签: spring-mvc tomcat crawler4j


【解决方案1】:

我找到了答案。

这是因为开头有一个破折号,它试图在系统开头创建一个目录,而用户没有权限。

我已经更改了文件夹并且一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-26
    • 2013-09-28
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 2016-04-10
    • 2015-12-05
    • 2013-08-08
    相关资源
    最近更新 更多