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

问题描述 投票:4回答:2

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

[错误]无法在项目服务数据模型提供程序上执行目标org.apache.cxf:cxf-codegen-plugin:3.1.2:wsdl2java(generate-sources):执行生成源目标org.apache.cxf :cxf-codegen-plugin:3.1.2:wsdl2java失败:无法生成类型。 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

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

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

这是我的cfg

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

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

这表明系统太慢,并且CXF \ Java在完全写入磁盘之前尝试使用该文件。使用SSD时,问题只会偶尔发生。

我们的数据模型非常庞大(许多XSD)并且硬盘驱动器已加密,这就是为什么一切都很慢的原因。

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

全栈跟踪

[错误]无法在项目服务数据模型提供程序上执行目标org.apache.cxf:cxf-codegen-plugin:3.1.2:wsdl2java(generate-sources):执行生成源目标org.apache.cxf :cxf-codegen-plugin:3.1.2:wsdl2java失败:Fai导致生成类型。 a:\ Misc \ WsMock \ service-data-model-provider \ src \ main \ java \ co \ schema \ common \ fault \ creati onfault \ v1 \ ObjectFactory.java(访问被拒绝) - > [帮助1]组织。 apache.maven.lifecycle.LifecycleExecutionException:无法执行目标org.apache.cxf:cxf-codegen-plugin:3.1.2:wsdl2java(generate-sources)项目服务-data-model-provider:执行生成源目标org.apache.cx f:cxf-codegen-plugin:3.1.2:wsdl2java失败:无法生成类型。 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224)位于org.apache.maven.life循环的org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) .internal.MojoExecutor.execute(MojoExecutor.java:145)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder) .java:80)org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128 )org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)atg.apache.maven.DefaultMaven.execute(DefaultMaven.java: 106)org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)atg.a pache.maven.cli.MavenCli.main(MavenCli.java:197)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl。在org.codehaus的org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)的java.lang.reflect.Method.invoke(Method.java:497)中调用(DelegatingMethodAccessorImpl.java:43) .plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)at org.codehaus.plexus.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更多引起:org。 apache.cxf.tools.common.ToolException:无法生成类型。 org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.generate(JAXBDataBinding.java:839)org.apache的org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:730)位于org.apache.cxf.tools.wsdlto.WSDLToJavaContainer的org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:164)中的.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:270) .execute(WSDLToJavaContainer.java:415)org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java) :113)org.apache中的org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)org.apache.cxf.maven_plugin.wsdl2java.WSDL2JavaMojo.generate(WSDL2JavaMojo.java:415)。位于org.apache.maven.maven.plugin.DefaultBuildPluginManager.execu的org.apache.cxf.maven_plugin.wsdl2java.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:512)中的cxf.maven_plugin.AbstractCodegenMoho.execute(AbstractCodegenMoho.java:260) teMojo(DefaultBuildPluginManager.java:134)... 21更多引起:java.io.FileNotFoundException:a:\ Misc \ WsMock \ service-data-model-provider \ src \ main \ java \ uk \ co \ schema \ common位于java.io.FileOutputStream.open上的java.io.FileOutputStream.open(FileOutputStream.java:270)的java.io.FileOutputStream.open0(本地方法)中的\ fault \ creationfault \ v1 \ ObjectFactory.java(拒绝访问)。( FileOutputStream.java:213)位于org.apache.cxf.maven_plugin的org.sonatype.plexus.build.incremental.DefaultBuildContext.newFileOutputStream(DefaultBuildContext.java:54)的java.io.FileOutputStream。(FileOutputStream.java:162)。位于com.sun.codemodel.CodeWriter.openSource(CodeWriter)的org.apache.cxf.tools.wsdlto.databinding.jaxb.TypesCodeWriter.openBinary(TypesCodeWriter.java:72)中的wsdl2java.WSDL2JavaMojo $ 1.createOutputStream(WSDL2JavaMojo.java:411) .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)at com.un.codemodel.JCodeModel.build(JCodeModel.java:301)at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.generate(JAXBDataBinding.java:827).. .32 more [ERROR] [ERROR]使用-X开关重新运行Maven以启用完整的调试日志记录。 [错误] [错误]有关错误和可能的解决方案的更多信息,请阅读以下文章:[错误] [帮助1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

干杯前

java cxf wsdl2java
2个回答
0
投票

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


0
投票

当我的wsdl文件出现问题时,我遇到了类似的问题。请检查wsdl文件和任何丢失的文件路径。

© www.soinside.com 2019 - 2024. All rights reserved.