【问题标题】:Null Pointer Exception at OutputPropertiesFactory.java when using docx4j使用 docx4j 时 OutputPropertiesFactory.java 出现空指针异常
【发布时间】:2012-11-08 18:37:11
【问题描述】:

我正在使用 docx4j 提取上传的 docx 文件,但出现以下异常

java.lang.NullPointerException 在 org.apache.xml.serializer.OutputPropertiesFactory.getDefaultMethodProperties(OutputPropertiesFactory.java:260) 在 org.apache.xalan.templates.OutputProperties.(OutputProperties.java:83) 在 org.apache.xalan.transformer.TransformerIdentityImpl.(TransformerIdentityImpl.java:88) 在 org.apache.xalan.processor.TransformerFactoryImpl.newTransformerHandler(TransformerFactoryImpl.java:755) 在 com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.createTransformerHandler(JAXBContextImpl.java:705) 在 com.sun.xml.internal.bind.v2.runtime.unmarshaller.DomLoader$State.(DomLoader.java:52) 在 com.sun.xml.internal.bind.v2.runtime.unmarshaller.DomLoader.startElement(DomLoader.java:102) 在 com.sun.xml.internal.bind.v2.runtime.unmarshaller.ProxyLoader.startElement(ProxyLoader.java:44) 在 com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:470) 在 com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:448) 在 com.sun.xml.internal.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:60) 在 com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:137) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:228) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:265) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:234) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:111) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:94) 在 com.sun.xml.internal.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:87) 在 com.sun.xml.internal.bind.v2.runtime.BinderImpl.associativeUnmarshal(BinderImpl.java:145) 在 com.sun.xml.internal.bind.v2.runtime.BinderImpl.unmarshal(BinderImpl.java:116) 在 org.docx4j.openpackaging.parts.JaxbXmlPartXPathAware.unmarshal(JaxbXmlPartXPathAware.java:171) 在 org.docx4j.openpackaging.io.LoadFromZipNG.getRawPart(LoadFromZipNG.java:560) 在 org.docx4j.openpackaging.io.LoadFromZipNG.getPart(LoadFromZipNG.java:429) 在 org.docx4j.openpackaging.io.LoadFromZipNG.addPartsFromRelationships(LoadFromZipNG.java:352) 在 org.docx4j.openpackaging.io.LoadFromZipNG.process(LoadFromZipNG.java:245) 在 org.docx4j.openpackaging.io.LoadFromZipNG.get(LoadFromZipNG.java:193) 在 org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:301) 在 org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:245) 在 org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:213) 在 org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:184) 在 com.myapp.plugin.multipartfileparser.MsWordMultipartFileParser.getDocxHtml(MsWordMultipartFileParser.java:111) 在 com.myapp.plugin.multipartfileparser.MsWordMultipartFileParser.write(MsWordMultipartFileParser.java:68) 在 com.myapp.plugin.service.FileUploaderService.save(FileUploaderService.java:89) 在 com.myapp.plugin.controller.UploadFileController.upload(UploadFileController.java:48) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:616) 在 org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212) 在 org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 在 org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 在 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 在 org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) 在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) 在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 在 org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) 在 org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 在 org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:679)

其实我第一次可以上传那个文件,但是第二次就出现了这个异常。只是想知道是否有人以前看过它?

谢谢,

【问题讨论】:

  • 请编辑您的问题以添加一些可用于重现问题的 Java 代码。它发生在什么 docx 上?

标签: java docx4j


【解决方案1】:

我在向 glassfish 3 部署 Web 服务时遇到了同样的问题。第一个请求有效,但后续请求失败。

当我检查我的 war 文件的内容时,我发现我有 2 个版本的 xalan:2.7.1 和 2.7.0。我使用 7zip 从战争中删除了旧版本(2.7.0),然后重新部署。问题已解决。然后我相应地重新配置了我的项目依赖项。

因此,我建议您可能有类似的 jar 冲突,可以像我上面所做的那样解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-21
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多