2014-10-08 2 views
1

wxd-filesource에서 Java 클래스를 생성하기 위해 cxf-codegen-plugin을 사용하고 있습니다. 한 번 클래스에 주석을 추가하고 바인딩 파일을 지정하고 jaxb2-basics-annotate 플러그인을 사용하여 주석을 추가합니다. 생성 된 파일에는 바인딩 파일에 지정된 주석이 포함되어 있지 않습니다. 여기 JAXB2 기본 Annotate 플러그인이 maven과 호환되지 않습니다. cxf-codegen-plugin

는 치어 파일

<plugins> 
    <plugin> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-codegen-plugin</artifactId> 
     <version>2.7.4</version> 
     <executions> 
      <execution> 
       <id>generate-sources</id> 
       <phase>generate-sources</phase> 
       <configuration> 
         <wsdlOptions> 
          <wsdlOption> 
           <wsdl>src/main/resources/wsdl/QueryJobService.wsdl</wsdl> 
           <wsdlLocation>classpath:wsdl/QueryJobService.wsdl</wsdlLocation> 
           <extraargs> 
            <extraarg>-xjc-Xannotate</extraarg> 
           </extraargs> 
           <bindingFiles> 
            <bindingFile>src/main/resources/wsdl/xsd/job-bindings.xjb</bindingFile> 
           </bindingFiles>  
          </wsdlOption> 
         </wsdlOptions> 
        </configuration> 
        <goals> 
         <goal>wsdl2java</goal> 
        </goals> 
       </execution> 
      </executions> 
      <dependencies> 
       <dependency> 
        <groupId>org.jvnet.jaxb2_commons</groupId> 
        <artifactId>jaxb2-basics-annotate</artifactId> 
        <version>1.0.1</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
    </plugins> 

의 구성이며, 여기에 이상한 아무것도 표시되지 않습니다 디버그 모드에서 받는다는를 실행하는 바인딩 파일

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<jaxb:bindings 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:annox="http://annox.dev.java.net" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd" 
    version="2.1"> 

<jaxb:bindings schemaLocation="data.xsd" node="/xs:schema"> 
    <jaxb:bindings node="//xs:complexType[@name='resource']"> 
    <annox:annotate target="class"> 
      <annox:annotate annox:class="javax.xml.bind.annotation.XmlSeeAlso" value="model.common.sm.dcp.com.data._1.SimOrder"/> 
     </annox:annotate> 
    </jaxb:bindings> 
</jaxb:bindings> 

에게 있습니다. cxf-codegen-plugin과 jaxb2-basics-annotate가 함께 작동하지 않습니까? 아니면 구성에 문제가 있습니까?

답변

2

CXF와 호환되어야합니다.

바인딩이 전혀 적용되지 않았는지 확인하십시오. annox를 대체하려고 시도하십시오 : <jaxb:class name="FooBar"/>과 같은 주석을 달아주세요 - FooBar로 생성됩니까?

XML 대신 새 Java 구문 : https://github.com/highsource/jaxb2-annotate-plugin을 사용해보십시오.

마지막으로, 나는 당신이 루트 jaxb:bindings 요소에이 속성이 누락 될 수 같아요

jaxb:extensionBindingPrefixes="annox" 

example를 참조하십시오.

도움이되지 않으면 PR on github을 보내주십시오.

준수 면책 조항 : jaxb2-annotate-plugin의 저자입니다.

관련 문제