Hyperjaxb 和 Apache CXF

发布于 2024-09-05 04:41:35 字数 4657 浏览 4 评论 0原文

我尝试将 Hyperjaxb3 与 Apache CXF 结合使用,从 WSDL-first Web 服务生成持久性注释。我已将 Hyperjaxb3-ejb-plugin 插入到 cxf-codegen-plugin 中,如下所示。

<plugin>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-codegen-plugin</artifactId>
  <version>${cxf.version}</version>
  <dependencies>
    <dependency>
      <groupId>org.jvnet.jaxb2_commons</groupId>
      <artifactId>jaxb2-basics</artifactId>
      <version>0.5.2</version>
    </dependency>
    <dependency>    
      <groupId>org.jvnet.hyperjaxb3</groupId>
      <artifactId>hyperjaxb3-ejb-plugin</artifactId>
      <version>0.5.4</version>
    </dependency>
  </dependencies> 
  <executions>
    <execution>     
      <id>generate-sources</id>
      <phase>generate-sources</phase>
      <configuration>
        <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
        <wsdlOptions>
          <wsdlOption>
            <wsdl>${basedir}/src/main/resources/wsdl/CDXLEAToCourt.wsdl</wsdl>
            <xjcargs>
              <xjcarg>-Xequals</xjcarg>
              <xjcarg>-XtoString</xjcarg>
              <xjcarg>-Xhyperjaxb3-ejb</xjcarg>
            </xjcargs>
          </wsdlOption>
        </wsdlOptions>
      </configuration>
      <goals>
        <goal>wsdl2java</goal>
      </goals>
    </execution>
  </executions>
</plugin>

当我生成源代码时,我得到以下信息丰富的堆栈跟踪。

Failed to execute goal org.apache.cxf:cxf-codegen-plugin:2.2.7:wsdl2java (generate-sources) on project leaToCourtWS: Failed to generate types. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.cxf:cxf-codegen-plugin:2.2.7:wsdl2java (generate-sources) on project leaToCourtWS: Failed to generate types.
  at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:585)
  at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:324)
  at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:247)
  at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:104)
  at org.apache.maven.cli.MavenCli.execute(MavenCli.java:427)
  at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:157)
  at org.apache.maven.cli.MavenCli.main(MavenCli.java:121)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:597)
  at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
  at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
  at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
  at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to generate types.
  at org.apache.cxf.maven_plugin.WSDL2JavaMojo.callWsdl2Java(WSDL2JavaMojo.java:409)
  at org.apache.cxf.maven_plugin.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:361)
  at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:105)
  at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:577)
  ... 14 more
Caused by: org.apache.cxf.tools.common.ToolException: Failed to generate types.
  at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.generate(JAXBDataBinding.java:716)
  at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:582)
  at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:228)
  at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:128)
  at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:271)
  at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
  at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
  at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
  at org.apache.cxf.maven_plugin.WSDL2JavaMojo.callWsdl2Java(WSDL2JavaMojo.java:406)
  ... 17 more

一段时间以来,我一直在努力反对这一点。我尝试在没有 Hyperjaxb 的情况下继续该项目,但不想承担维护成本。有什么想法吗?异常的解决方案或使用 Hyperjaxb 的替代方案会很棒。

I'm trying to use Hyperjaxb3 with Apache CXF to generate persistence annotations from a WSDL-first web service. I've plugged the Hyperjaxb3-ejb-plugin into the cxf-codegen-plugin, like so.

<plugin>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-codegen-plugin</artifactId>
  <version>${cxf.version}</version>
  <dependencies>
    <dependency>
      <groupId>org.jvnet.jaxb2_commons</groupId>
      <artifactId>jaxb2-basics</artifactId>
      <version>0.5.2</version>
    </dependency>
    <dependency>    
      <groupId>org.jvnet.hyperjaxb3</groupId>
      <artifactId>hyperjaxb3-ejb-plugin</artifactId>
      <version>0.5.4</version>
    </dependency>
  </dependencies> 
  <executions>
    <execution>     
      <id>generate-sources</id>
      <phase>generate-sources</phase>
      <configuration>
        <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
        <wsdlOptions>
          <wsdlOption>
            <wsdl>${basedir}/src/main/resources/wsdl/CDXLEAToCourt.wsdl</wsdl>
            <xjcargs>
              <xjcarg>-Xequals</xjcarg>
              <xjcarg>-XtoString</xjcarg>
              <xjcarg>-Xhyperjaxb3-ejb</xjcarg>
            </xjcargs>
          </wsdlOption>
        </wsdlOptions>
      </configuration>
      <goals>
        <goal>wsdl2java</goal>
      </goals>
    </execution>
  </executions>
</plugin>

When I generate source, I get the following informative stack trace.

Failed to execute goal org.apache.cxf:cxf-codegen-plugin:2.2.7:wsdl2java (generate-sources) on project leaToCourtWS: Failed to generate types. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.cxf:cxf-codegen-plugin:2.2.7:wsdl2java (generate-sources) on project leaToCourtWS: Failed to generate types.
  at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:585)
  at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:324)
  at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:247)
  at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:104)
  at org.apache.maven.cli.MavenCli.execute(MavenCli.java:427)
  at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:157)
  at org.apache.maven.cli.MavenCli.main(MavenCli.java:121)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:597)
  at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
  at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
  at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
  at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to generate types.
  at org.apache.cxf.maven_plugin.WSDL2JavaMojo.callWsdl2Java(WSDL2JavaMojo.java:409)
  at org.apache.cxf.maven_plugin.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:361)
  at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:105)
  at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:577)
  ... 14 more
Caused by: org.apache.cxf.tools.common.ToolException: Failed to generate types.
  at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.generate(JAXBDataBinding.java:716)
  at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:582)
  at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:228)
  at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:128)
  at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:271)
  at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
  at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
  at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
  at org.apache.cxf.maven_plugin.WSDL2JavaMojo.callWsdl2Java(WSDL2JavaMojo.java:406)
  ... 17 more

I've been banging my head against this for a while. I tried to continue the project without Hyperjaxb, but don't want to incur the maintenance costs. Any ideas? A solution to the exception- or an alternative to using Hyperjaxb- would be great.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

往日 2024-09-12 04:41:35

找到了解决方案。我给项目所有者 Aleksei 发了电子邮件,他告诉我 Hyperjaxb3 CXF 集成已在 .5.5 中引入,但尚未发布。噢!

他建议我使用快照存储库。我将存储库添加到我的 POM,将 hyperjaxb3-ejb-plugin 的版本更改为 0.5.5-SNAPSHOT-,到目前为止,一切都运行良好。

Found a solution. I emailed Aleksei - the project owner- and he informed me that Hyperjaxb3 CXF integration was introduced in .5.5, which has yet to be released. D'oh!

He suggested I use the snapshot repository. I added the repository to my POM, changed the version of the hyperjaxb3-ejb-plugin to 0.5.5-SNAPSHOT- and so far, everything works beautifully.

琉璃梦幻 2024-09-12 04:41:35

问题似乎出在您的 WSDL 文件上。

Hyperjaxb3 的源代码中有一个工作示例,名为 customerservice-cxf 可能对您有帮助。

It seems the problem comes from your WSDL file.

There is a working example within the source code of Hyperjaxb3 called customerservice-cxf that might help you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文