无法创建Spring Boot CXF XMLOutputFactory

时间:2018-02-22 15:02:20

标签: java spring spring-boot cxf

我试图从java命令启动我的Spring Boot应用程序,当我打开WSDL时出现以下错误:

请注意,当我从Eclipse运行应用程序时,我可以打开WSDL。

有什么想法吗?

  

用于servlet [CXFServlet]的Servlet.service()与路径的上下文   [/ bootapp]抛出异常[Servlet执行抛出异常]   root cause java.util.zip.ZipException:设置的代码长度无效           at java.util.zip.InflaterInputStream.read(Unknown Source)           在org.springframework.boot.loader.jar.ZipInflaterInputStream.read(ZipInflaterInputStream.java:52)           at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)           at sun.nio.cs.StreamDecoder.implRead(Unknown Source)           at sun.nio.cs.StreamDecoder.read(Unknown Source)           在java.io.InputStreamReader.read(未知来源)           在java.io.BufferedReader.fill(未知来源)           在java.io.BufferedReader.readLine(未知来源)           在java.io.BufferedReader.readLine(未知来源)           在java.util.ServiceLoader.parseLine(未知来源)           在java.util.ServiceLoader.parse(未知来源)           at java.util.ServiceLoader.access $ 200(未知来源)           at java.util.ServiceLoader $ LazyIterator.hasNextService(Unknown Source)           at java.util.ServiceLoader $ LazyIterator.hasNext(Unknown Source)           at java.util.ServiceLoader $ 1.hasNext(Unknown Source)           在javax.xml.stream.FactoryFinder $ 1.run(未知来源)           at java.security.AccessController.doPrivileged(Native Method)           在javax.xml.stream.FactoryFinder.findServiceProvider(未知来源)           在javax.xml.stream.FactoryFinder.find(未知来源)           在javax.xml.stream.FactoryFinder.find(未知来源)           在javax.xml.stream.XMLOutputFactory.newInstance(未知来源)           在org.apache.cxf.staxutils.StaxUtils.getXMLOutputFactory(StaxUtils.java:295)           在org.apache.cxf.staxutils.StaxUtils.createXMLStreamWriter(StaxUtils.java:392)           在org.apache.cxf.wsdl11.SchemaSerializer.writeXml(SchemaSerializer.java:56)           在org.apache.cxf.wsdl11.SchemaSerializer.marshall(SchemaSerializer.java:49)           在com.ibm.wsdl.xml.WSDLWriterImpl.printExtensibilityElements(未知   资源)           在com.ibm.wsdl.xml.WSDLWriterImpl.printTypes(未知来源)           at com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition(Unknown Source)           在com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(未知来源)           在com.ibm.wsdl.xml.WSDLWriterImpl.getDocument(未知来源)           at org.apache.cxf.frontend.WSDLGetUtils.writeWSDLDocument(WSDLGetUtils.java:705)           在org.apache.cxf.frontend.WSDLGetUtils.getDocument(WSDLGetUtils.java:151)           at org.apache.cxf.frontend.WSDLGetInterceptor.getDocument(WSDLGetInterceptor.java:129)           at org.apache.cxf.frontend.WSDLGetInterceptor.handleMessage(WSDLGetInterceptor.java:77)           在org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)           at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)           at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267)           在org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)           在org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)           在org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)           在org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:191)           at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301)           at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:225)           在javax.servlet.http.HttpServlet.service(HttpServlet.java:635)           at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276)           在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)           在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)           在org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)           在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)           在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)           在org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)           在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)           在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)           在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)           在org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110)           在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)           在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)           在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)           在org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)           在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)           在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)           在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)           在org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)           在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)           在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)           在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)           在org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)           在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)           在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)           在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)           在org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)           在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)           在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)           在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)           在org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)           在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)           在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)           在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)           在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)           在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)           在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)           在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)           at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)           在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)           在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)           在org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)           在org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)           at org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:868)           在org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1457)           在org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)           at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)           at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)           at org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)           在java.lang.Thread.run(未知来源)2018-02-22 15:51:12 - 初始化Spring FrameworkServlet' dispatcherServlet'

1 个答案:

答案 0 :(得分:0)

pom排除中的follwinf修复最终解决了问题:

<dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
            <version>3.2.2</version>
            <exclusions>
                <!-- <exclusion> -->
                <!-- <groupId>org.apache.cxf</groupId> -->
                <!-- <artifactId>cxf-core</artifactId> -->
                <!-- </exclusion> -->
                <exclusion>
                    <groupId>org.apache.ws.xmlschema</groupId>
                    <artifactId>xmlschema-core</artifactId>
                </exclusion>
                <exclusion>
                    <!-- <groupId>org.codehaus.woodstox</groupId> -->
                    <!-- <artifactId>stax2-api</artifactId> -->
                    <groupId>com.fasterxml.woodstox</groupId>
                    <artifactId>woodstox-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>stax</groupId>
                    <artifactId>stax-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-web</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-autoconfigure</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-databinding-xmlbeans</artifactId>
            <version>2.7.18</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.cxf</groupId>
                    <artifactId>cxf-core</artifactId>
                </exclusion>

                <exclusion>
                    <groupId>org.apache.xmlbeans</groupId>
                    <artifactId>xmlbeans</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.cxf</groupId>
                    <artifactId>cxf-rt-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>stax</groupId>
                    <artifactId>stax-api</artifactId>
                </exclusion>
<!--                <exclusion> -->
<!--                    <groupId>org.codehaus.woodstox</groupId> -->
<!--                    <artifactId>woodstox-core-asl</artifactId> -->
<!--                </exclusion> -->
                <exclusion>
                    <!-- <groupId>org.codehaus.woodstox</groupId> -->
                    <!-- <artifactId>stax2-api</artifactId> -->
                    <groupId>com.fasterxml.woodstox</groupId>
                    <artifactId>woodstox-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>wsdl4j</groupId>
                    <artifactId>wsdl4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>