apache cxf wsdl2java 无法生成类型->访问被拒绝

Pre*_*rem 6 java cxf wsdl2java

自 2013 年以来,我一直在努力解决这个问题……我使用的是 Windows 7。

[错误] 无法在项目 service-data-model-provider 上执行目标 org.apache.cxf:cxf-codegen-plugin:3.1.2:wsdl2java (generate-sources):执行目标 org.apache.cxf 的生成源:cxf-codegen-plugin:3.1.2:wsdl2java failed: 无法生成类型。a:\Misc\WsMock\service-data-model-provider\src\main\java\schema\eo\common\system\messageheader\v1\MessageContextType.java(访问被拒绝)-> [帮助 1]

它完全随机,并且在所有 cxf 版本和不同的 java 版本上都会发生。目前我在 jdk 1.8.45 和 cxf 3.1.2

该问题可以通过设置始终解决

但是构建总是成功的,即使会发生一些错误,在日志中显示为 [警告] .. 所以我不能使用类似的东西。

这是我的配置文件

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>${cxf.version}</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${basedir}/src/main/java</sourceRoot>
                <defaultOptions>
                    <extraargs>
                        <extraarg>-validate</extraarg>
                        <extraarg>-exsh</extraarg>
                        <extraarg>true</extraarg>
                    </extraargs>
                </defaultOptions>
                <wsdlRoot>..\..\..</wsdlRoot>
                <includes>
                    <include>mds/apps/services/**/*.wsdl</include>
                </includes>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

另一件有帮助但不能完全解决问题的方法是禁用 WindowsHardDrive 驱动程序中的 WriteToCache 设置。

这表明系统太慢,CXF\Java 试图在文件完全写入磁盘之前使用它。使用 SSD 问题只是偶尔发生。

我们的数据模型是巨大的(很多 XSD)并且硬盘是加密的,所以这就是为什么一切都那么慢的原因。

任何想法如何调整java来处理这个问题?或者可能是 CXF 问题?

全栈跟踪

[错误] 无法在项目 service-data-model-provider 上执行目标 org.apache.cxf:cxf-codegen-plugin:3.1.2:wsdl2java (generate-sources):执行目标 org.apache.cxf 的生成源:cxf-codegen-plugin:3.1.2:wsdl2java failed: Fai 导致生成类型。a:\Misc\WsMock\service-data-model-provider\src\main\java\co\schema\common\fault\creati onfault\v1\ObjectFactory.java(访问被拒绝)-> [Help 1] org. apache.maven.lifecycle.LifecycleExecutionException:无法执行目标 org.apache.cxf:cxf-codegen-plugin:3.1.2:w sdl2java (generate-sources) on project service-data-model-provider: Execution generate-sources of目标 org.apache.cx f:cxf-codegen-plugin:3.1.2:wsdl2java 失败:无法生成类型。在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224) 在 org.apache。classworlds.launcher.Launcher.main(Launcher.java:356) 引起:org.apache.maven.plugin.PluginExecutionException:目标 org.apache.cxf:cxf-codeg en-plugin:3.1.2 的执行生成源: wsdl2java 失败:无法生成类型。在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 20 更多apache.cxf.tools.common.ToolException:无法生成类型。在 org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.generate(JAXBDataBinding.java:839) 在 org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:730) 在 org.apache .cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java: openSource(CodeWriter.java:100) at com.sun.codemodel.JPackage.createJavaSourceFileWriter(JPackage.java:490) at com.sun.codemodel.JPackage.build(JPackage.java:441) at com.sun.codemodel.JCodeModel .build(JCodeModel.java:311) 在 com.sun.codemodel.JCodeModel.build(JCodeModel.java:301) 在 org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.generate(JAXBDataBinding.java:827) ) ... 32 更多 [错误] [错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。[ERROR] [ERROR] 有关错误和可能的解决方案的更多信息,请阅读以下文章: [ERROR] [Help 1] 441) 在 com.sun.codemodel.JCodeModel.build(JCodeModel.java:311) 在 com.sun.codemodel.JCodeModel.build(JCodeModel.java:301) 在 org.apache.cxf.tools.wsdlto.databinding.jaxb .JAXBDataBinding.generate(JAXBDataBinding.java:827) ... 32 更多 [错误] [错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。[ERROR] [ERROR] 有关错误和可能的解决方案的更多信息,请阅读以下文章: [ERROR] [Help 1] 441) 在 com.sun.codemodel.JCodeModel.build(JCodeModel.java:311) 在 com.sun.codemodel.JCodeModel.build(JCodeModel.java:301) 在 org.apache.cxf.tools.wsdlto.databinding.jaxb .JAXBDataBinding.generate(JAXBDataBinding.java:827) ... 32 更多 [错误] [错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。[ERROR] [ERROR] 有关错误和可能的解决方案的更多信息,请阅读以下文章: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

干杯Prem

Yad*_*dra 0

我也发生了同样的事情。
我也有 jdk 1.8 和 cxf 3.1.x
我在一台旧 PC 上用 jdk 1.7 和 cxf 2.7.0 尝试了相同的任务,它的工作就像魅力一样。
添加 <plugin> 将生成模式每次创建构建时都会从 wsdl 获取服务。我不知道这是否是一种有效的方法,但我提取了一次架构和服务并将它们添加到根目录中。
谢谢