2013-10-15 2 views
0

데이터 바인딩을 위해 JiBX (1.2.5)를 사용하기 위해 CXF (2.7.7)를 얻으려고합니다. 문서는 약간 개략적이지만, 성공에 대한보고가있었습니다. 한 가지 문제점은 CXF가 JiBX 코드 생성기에 구성을 전달하지 않는다는 것입니다. 따라서 Joda DateTime을 XML 스키마 날짜와 같은 사용자 지정이 필요한 작업을 수행해야하는 경우 CXF에 특정 네임 스페이스를 무시하도록 알릴 수 있어야합니다. JiBX에 대한 별도의 호출로 처리하십시오.CXF 데이터 바인딩으로 JiBX를 사용할 때 -nexclude가 작동합니까?

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <version>${cxf.version}</version> 
    <executions> 
     <execution> 
      <id>generateSources</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>wsdl2java</goal> 
      </goals> 
      <configuration> 
       <sourceRoot>${generated-sources.dir}/cxf</sourceRoot> 
       <wsdlRoot>${wsdl.dir}</wsdlRoot> 
       <wsdlOptions> 
        <wsdlOption> 
         <wsdl>${wsdl.dir}/GetCounters.wsdl</wsdl> 
         <dataBinding>jibx</dataBinding> 
         <extraargs> 
          <extraarg>-nexclude</extraarg> 
          <extraarg>http://www.example.com/counters/</extraarg> 
         </extraargs> 
        </wsdlOption> 
       </wsdlOptions> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

같이 나는이 목적을 위해 CXF -nexclude 플래그를 사용하여 본 예는, 나는 인라인 및 네임 스페이스의 수입 버전하지만 -nexclude 플래그가 함께 작동하도록 나타나지 않습니다 모두 시도 JiBX. 하나의 옵션은 JiBX가 CXF 플러그인을 호출하지 않고 전체 WSDL을 수행하도록하는 것이지만, 분명히 생성 된 서비스 코드에 문제가 발생합니다. 추악한 해결 방법은 JiBX가이 네임 스페이스의 클래스에 대한 코드를 다시 생성하고 CXF에서 작성한 코드를 덮어 쓰게하는 것일 수 있습니다.

-nexclude 플래그를 작동시킬 수 있습니까?

답변

0

jaxb를 사용하는 동안 비슷한 문제가있었습니다. 이 나를 위해 일했다 :

wsdlOption 구역 및 defaultOptions 섹션 밖으로 extraargs 이동하십시오.

<plugin> 
<groupId>org.apache.cxf</groupId> 
<artifactId>cxf-codegen-plugin</artifactId> 
<version>${cfx.codegen.version}</version> 
<executions> 
    <execution> 
     <id>generate-sources</id> 
     <phase>generate-sources</phase> 
     <configuration> 
      <defaultOptions> 
       <extraargs> 
        <extraarg>-nexclude</extraarg> 
        <extraarg>http://domain.company.org/v1/schema1</extraarg> 
        <extraarg>-nexclude</extraarg> 
        <extraarg>http://domain.company.org/v1/schema2</extraarg> 
       </extraargs> 
      </defaultOptions> 
      <wsdlOptions> 
       <wsdlOption> 
        <wsdlArtifact> 
         <groupId>org.company</groupId> 
         <artifactId>application-contract</artifactId> 
         <version>${contract.version}</version> 
         <type>wsdl</type> 
        </wsdlArtifact> 
       </wsdlOption> 
      </wsdlOptions> 
      <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot> 
     </configuration> 
     <goals> 
      <goal>wsdl2java</goal> 
     </goals> 
    </execution> 
</executions> 

관련 문제