проблема прав доступа для файлов с maven resluts в java.lang.NoSuchMethodError - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть веб-проект с maven, работающим на Tomcat 9.0.Моя проблема в том, что я хочу открыть .png для обработки его в моем коде Java, но я не могу получить разрешение на его открытие.

Я ничего не пробовал, и я все из идей.Нет, я уже все проверил и погуглил на подобные проблемы.Каждое возможное решение, которое я тестировал до сих пор, вы увидите в коде.

spring-dispatcher-servlet.xml

...
        <mvc:resources mapping="/resources/**"
            location="/resources/" />
            <mvc:resources mapping="/output/**"
            location="/output/" />
        <mvc:annotation-driven />
        <mvc:default-servlet-handler />
...

pom.xml

<build>
    <defaultGoal>install</defaultGoal>
    <sourceDirectory>src</sourceDirectory>
    <resources>
     <resource>
       <directory>WebContent/resources</directory>      
     </resource>
      <resource>      
       <directory>WebContent/output</directory>
     </resource>
   </resources>
    <plugins>
...

web.xml

...
<context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>/WEB-INF/spring-dispatcher-servlet.xml</param-value>
   </context-param>
   <context-param> 
      <description>Location to store uploaded file</description> 
      <param-name>file-upload</param-name> 
      <param-value>
        C:\Program Files\Apache Software Foundation\Tomcat 9.0\wtpwebapps\Novega\resources\
      </param-value> 
   </context-param>
...

Создание моего веб-проекта (ошибок пока нет)

...
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Novega ---
[INFO] Using 'ISO-8859-1' encoding to copy filtered resources.
[INFO] Copying 132 resources
[INFO] Copying 1 resource
...
Java C

код для продолжения работы с файлом - некоторые дикие тесты включены.

//  Wappen einfügen
                XWPFParagraph p1a = document.createParagraph();
                XWPFRun run1a = p1a.createRun();
                p1a.setAlignment(ParagraphAlignment.CENTER);
                try {
                    String imgFile1 = "src/main/resources/NRW_Wappen.png";
                    FileInputStream is1 = new FileInputStream(imgFile1);
                } catch (Exception e) {
                    System.out.println("1");
                }
                try {
                    String imgFile2 = "src/main/resources/resources/Ouput/NRW_Wappen.png";
                    FileInputStream is2 = new FileInputStream(imgFile2);
                } catch (Exception e) {
                    System.out.println("2");
                }
                try {
                    String imgFile3 = "src/main/resources/resources/NRW_Wappen.png";
                    FileInputStream is3 = new FileInputStream(imgFile3);
                } catch (Exception e) {
                    System.out.println("3");
                }
                try {                   
                    String imgFile4 = "src/main/resources/output/NRW_Wappen.png";
                    FileInputStream is4 = new FileInputStream(imgFile4);
                } catch (Exception e) {
                    System.out.println("4");
                }
                try {                   
                    String imgFile5 = "file-upload/NRW_Wappen.png";
                    FileInputStream is5 = new FileInputStream(imgFile5);
                } catch (Exception e) {
                    System.out.println("5");
                }
                try {                   
                    String imgFile6 = "C:/Users/DerFreundlichste/Desktop/NRW_Wappen.png";
                    FileInputStream is6 = new FileInputStream(imgFile6);
                } catch (Exception e) {
                    System.out.println("6");
                }

                String imgFile = "NRW_Wappen.png";
                FileInputStream is = new FileInputStream(imgFile);
                run1a.addPicture(is, XWPFDocument.PICTURE_TYPE_PNG, imgFile, Units.toEMU(170), Units.toEMU(179)); // 200x200 pixels
                run1a.addBreak();
                is.close();

Мое сообщение об ошибке

HTTP Status 500 – Internal Server Error

Type Exception Report

Message Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;

Bescrheibung The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1053)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Root Cause

java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
    org.apache.poi.ooxml.POIXMLTypeLoader.<clinit>(POIXMLTypeLoader.java:43)
    org.apache.poi.xwpf.usermodel.XWPFRun.addPicture(XWPFRun.java:1068)
    com.novega.Gesellschaft.submitGesellschaftS2(Gesellschaft.java:600)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
    org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
    org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
    org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

"возможное" решение, которое я нашел, но я не очень доволен им.

java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setSaveAggressiveNamespaces () Lorg / apache / xmlbeans / XmlOptions;

...