2013-06-20 3 views
1

모든 종류의 기본 XSD 유형을 가진 webservice 복합체를 구축 중입니다. 이제 컴파일을 더 많은 단계로 나누고 싶습니다. 사용하는 표준 각각에 대해 하나씩 선호합니다.wsimport에서 maven 좌표 스타일 에피소드 사용하기

장점 :

1) 내가 표준의 각 내 웹 서비스 모두에서 재 사용할 수있는 도구 라이브러리를 만들 추가 할 수 있습니다.

2) 나는 maven-jaxb2-plugin (org.jvnet.jaxb2.maven2)으로 매우 잘 작동하고 인스턴스 바인딩을 위해 만드는 것처럼 보이는 JAXB2 basics plugin의 힘을 사용할 수 있습니다. 이것은 jaxws-maven-plugin 플러그인과는 대조적입니다.

마지막 단계는 org.jvnet.jax-ws-commons:maven-jaxb2-plugin을 사용하여 EJB (또는 클라이언트 호출)에서 구현할 수있는 실제 웹 서비스를 만드는 것입니다. 이제

org.jvnet.jaxb2.maven2:maven-jaxb2-plugin 플러그인의 일환으로, 내가 좌표 자신의 받는다는에 의해 에피소드를 참조 할 수는 다음과 같습니다 :

<episodes> 
    <episode> 
     <groupId>org.example</groupId> 
     <artifactId>jaxb2-basics-test-episodes-a</artifactId> 
    </episode> 
</episodes> 

어떻게이 org.jvnet.jax-ws-commons:maven-jaxb2-plugin을 이용하여이 작업을 수행 할 수 있습니다? 나는 많이 검색하고,이 같은 실험을했습니다

제 (컴파일) JAXB의 dependend 프로젝트의 대상 디렉토리에서 에피소드 파일을 소요
<plugin> 
    <groupId>org.jvnet.jax-ws-commons</groupId> 
    <artifactId>>maven-jaxb2-plugin</artifactId> 
    <version>2.1</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>wsimport</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <wsdlDirectory>src/main/resources/</wsdlDirectory> 
     <wsdlFiles> 
      <wsdlFile>example.wsdl</wsdlFile> 
     </wsdlFiles>      
     <xjcArgs> 
      <xjcArg>-b</xjcArg> 
      <xjcArg>../cpt-xsd/target/generated-sources/xjc/META-INF/sun-jaxb.episode</xjcArg> 
     </xjcArgs>     
     <verbose>true</verbose> 
    </configuration> 
</plugin> 

. 이것은 때때로 maven 빌드에서 실패합니다 (왜 내가 아직 파악하지 못했는지).

카탈로그 파일을 사용하여 매핑을 만들려고했으나 (필자는 Maven 좌표를 대상으로 사용하는 카탈로그 매핑을 보았지만) 아직 성공하지 못했습니다.

답변

2

OGC Schemas and Tools Project을 알고 있습니까? (면책 조항 : 저는 저자입니다.)

지금, 질문하기. 내 생각 엔 org.jvnet.jax-ws-commons:maven-jaxb2-plugin은 호출 할 때 "Maven 좌표"를 지원하지 않을 것입니다. 이 기능은 특히 org.jvnet.jaxb2.maven2:maven-jaxb2-plugin (면책 조항 : 저자입니다.)에서 구현 한 기능입니다.

반면 에피소드 파일은 JAXB 바인딩 파일 일뿐입니다. 따라서이 파일을 JAR 이슈 (예 : maven-dependency-plugin을 사용)에서 간단하게 추출한 다음 이미 수행 한 것처럼 다소 포함시킬 수 있습니다. 다른 모듈의 디렉토리를 가리 키지 마십시오. 신뢰할 수 없습니다.

+0

감사합니다. 나는 알고있다. 얼마 전에 이것을 발견했다. 그건 고마워! 특정 바인딩 (예 : measuretype to bigdecimal)이 필요하므로 내 구현 (내 진화)을 선택했습니다. 얼마 전에 비슷한 접근 방식을 사용했습니다. 각 개별 OGC 프로젝트 (및 Xlink)를 XSD, 카탈로그, extCatalog (사용자의 mvn 좌표 바인딩 스타일 포함), 생성 된 에피소드 등의 개별 모듈로 분류했습니다. 그래서 나는 그것들을 의존성으로 사용할 수있다. – sjaak

+0

나는이 특징을 좋아한다. 그래서 나는 JAXWS 플러그인을 가지고 싶어했을 것이다. (아마도 그들은 플러그인에서 위임/위임 할 수 있습니다 .Jira에 대한 문제 요청을 발행했지만 다시들은 적이 없습니다.) Xlink는 흥미로운 JAXB 문제를 가지고 있습니다 (에피소드 컴파일과 함께 사용하는 경우) 원하는 경우 OGC 프로젝트를 나와 공유 할 수 있습니다. – sjaak

+0

아니면 maven-jaxb2-plugin에 wsimport 목표를 구현해야합니다.당신의 바인딩이 일반적으로 이해된다면, 나는 그것들을 주요 프로젝트에 따라 잡을 수 있습니다. 저에게 valikov-at-gmx-dot-net에 연락하십시오. – lexicore