2013-06-05 3 views
1

우리는 apache cxf를 통해 wsdl 클라이언트를 생성하는 maven 프로젝트를 가지고 있습니다. 가장 중요한 목표는 서비스 래퍼를 완전히 생성하여 버전 제어하에 wsdl 파일 만 유지 관리해야한다는 것입니다.cxf - wsdl2java가 SLF4J를 사용하도록합니다

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <version>2.7.5</version> 
    <executions> 
    <execution> 
     <id>generate-sources</id> 
     <phase>generate-sources</phase> 
     <configuration> 
     <wsdlOptions> 
      <wsdlOption> 
      <wsdl>src/main/resources/WSAnzeigeKunde.wsdl</wsdl> 
      <extraargs> 
       <extraarg>-frontend</extraarg> 
       <extraarg>jaxws21</extraarg> 
       <extraarg>-p</extraarg> 
       <extraarg>http://www.die-software.com/xsd/OBS_ANZEIGE_KUNDE_ANTWORT.xsd=com.diesoftware.service.anzeigekunde</extraarg> 
      </extraargs> 
      </wsdlOption> 
     </wsdlOptions> 
     </configuration> 
     <goals> 
     <goal>wsdl2java</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 

이것은 지금까지 정상적으로 작동합니다. 내가 그 CXF를 발견

public class WSAnzeigeAssetsummenService extends Service { 
    public final static URL WSDL_LOCATION; 
    public final static QName SERVICE = new QName("http://www.die-software.com/xsd/OBS_ANZEIGE_ASSETSUMMEN_ANTWORT.xsd", "WSAnzeigeAssetsummenService"); 
    public final static QName WSAnzeigeAssetsummenPort = new QName("http://www.die-software.com/xsd/OBS_ANZEIGE_ASSETSUMMEN_ANTWORT.xsd", "WSAnzeigeAssetsummenPort"); 
    static { 
     URL url = null; 
     try { 
     url = new URL("file:/C:/Data/workspace-temp/WebAppPOC/src/main/resources/WSAnzeigeAssetsummen.wsdl"); 
     } catch (MalformedURLException e) { 
     java.util.logging.Logger.getLogger(WSAnzeigeAssetsummenService.class.getName()) 
      .log(java.util.logging.Level.INFO, 
       "Can not initialize the default wsdl from {0}", "file:/C:/Data/workspace-temp/WebAppPOC/src/main/resources/WSAnzeigeAssetsummen.wsdl"); 
     } 
     WSDL_LOCATION = url; 
    } 

같은 결과 코드가 보이는 SLF4J ( http://cxf.apache.org/docs/debugging-and-logging.html#DebuggingandLogging-UsingLog4jInsteadofjava.util.logging)를 지원하지만이 WSDL2Java의에 속하지 않는 것 같다.

다른 로거를 사용하기 위해 실제로 wsdl2java를 구성 할 방법이 없습니까?

답변

1

이 특별한 경우는 아니요, 아니요. JAX-WS 스펙은 이러한 생성 된 서비스 클래스가 모든 JAX-WS 호환 환경에서 100 % 사용 가능하도록 요구합니다. 여기에는 JDK에서 다른 로깅 구현이없는 것이 포함됩니다.

CXF 3.0의 경우 CXF 특정 API 및 기능을 더 많이 사용할 수있는 wsdl2java의 새로운 "cxf"프론트 엔드에 대해 논의하기 시작했습니다.하지만 분명히 100 % JAX-WS를 준수하지는 않습니다.

+0

답변을 듣고 싶지는 않지만 듣고 싶습니다만, 분명히 이유는 무엇입니까 ... 로깅을 피할 수있는 방법이 있습니까? 예 : 발신자에게 예외를 전달 하시겠습니까? –