spring-mvc - 权限外部jar创建文件tomcat

标签 spring-mvc tomcat crawler4j

我的应用程序有问题。

它通过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 - 权限外部jar创建文件tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27364004/

相关文章:

firefox - tomcat(apache-tomcat-6.0.32)的 CSRF 方法在 firefox 14.0.1 上无法正常工作

java - Crawler4j ImageCrawler 字符串参数

java - 如何禁用 Crawler4J 记录器?

java - 将 URL 限制为仅种子 URL 域crawler4j

java - Spring MVC 和 Liferay - 资源映射问题

java - 如何使在全局 applicationContext 的 Spring-MVC 应用程序中创建的 2 个 applicationContexts

spring-mvc - 如何在Spring中使用SwitchUserFilter模拟用户?

java - Spring MVC 应用程序中无法显示 JSTL 中 HashMap 的值

tomcat - 如何使用tomcat接收和响应HTTP PUT?

java - jax-rs(rest api)和 websockets 的组合 - 在哪里放置公共(public)初始化