2010-06-09 3 views
1

Apache CXF에서 Hyperjaxb3을 사용하여 WSDL 첫 번째 웹 서비스에서 지속성 주석을 생성하려고합니다. Hyperjaxb3-ejb-plugin을 cxf-codegen-plugin에 플러그인했습니다.Hyperjaxb 및 Apache CXF

<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를 사용하는 것에 대한 예외 또는 대안에 대한 해결책은 훌륭합니다.

답변

3

해결책을 찾았습니다. 프로젝트 주인 인 Aleksei에게 이메일을 보내고 Hyperjaxb3 CXF 통합이 아직 공개되지 않은 .5.5에서 도입되었다고 알려주었습니다. D' oh!

그는 내가 snapshot repository을 사용할 것을 제안했습니다. 저장소를 POM에 추가하고 hyperjaxb3-ejb-plugin의 버전을 0.5.5-SNAPSHOT으로 변경했습니다. 지금까지 모든 것이 아름답게 작동합니다.

+1

매우 기쁘게 작동합니다. :) – lexicore

+1

그런데 0.5.5가 출시되었습니다. – lexicore

2

WSDL 파일에서 문제가 발생한 것으로 보입니다.

Hyperjaxb3 소스 코드 내에 customerservice-cxf이라는 유용한 예제가 있습니다.

+0

WSDL은 CXF만으로도 정상적으로 작동하므로 CXF/Hyperjaxb 문제라고 생각했습니다. –

관련 문제