java.lang.NoSuchMethodError中具有maven resluts的文件的访问权限问题

时间:2019-04-09 21:15:11

标签: maven tomcat servlets path access

我有一个在Tomcat 9.0上运行maven的Web项目。我的问题是我想在我的Java代码中打开一个.png来处理它,但我无法获得打开它的许可。

我什么也没尝试,只是出于想法。不,我已经仔细检查了所有内容,并用谷歌搜索了类似的问题。到目前为止,我测试过的每种可能的解决方案都将在代码中看到。

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>
...

构建我的Web项目(同时也不会出现错误)

...
[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;

0 个答案:

没有答案