2013-04-05 11 views
0

내가 현재 일하고있는 응용 프로그램은 많은 webservice를 호출합니다. 최근에 비누 인증을 위해 wsit-client.xml이 필요한 또 다른 웹 서비스를 통합했습니다.웹 서비스를 호출 할 때 wsit-client.xml을 무시하는 방법 (존재하는 경우)

이제는 작동하지만 다른 모든 SOAP 서비스는 작동을 멈췄습니다. 그 중 하나가 호출 될 때마다

는, 나는이 서비스가 실패 호출 원인을 의심

INFO: WSP5018: Loaded WSIT configuration from file: jar:file:/opt/atlasconf/atlas.20130307/bin/soap-sdd-1.0.0.jar!/META-INF/wsit-client.xml. 

같은 메시지를 참조하십시오.

특정 비누 서비스 호출에 대해 wsit-client.xml이 무시되도록하려면 어떻게해야합니까?

감사

답변

2

은 WSIT-client.xml에 대한 동적 위치를 구성하기위한 컨테이너와 로더를 사용하여 수정되었습니다. 이렇게하면 자동으로로드되지 않습니다. 그런 다음

내가이

 URL WSDL_LOCATION = this.getClass().getResource("/path/to/wsdl/mysvc.wsdl"); 

    WSService.InitParams initParams = new WSService.InitParams(); 
    initParams.setContainer(new WsitClientConfigurationContainer()); 
    secGtwService = WSService.create(WSDL_LOCATION, SECGTWSERVICE_QNAME, initParams); 

할 코드에서 사용하는}

public class WsitClientConfigurationContainer extends Container { 
private static final String CLIENT_CONFIG = "custom/location/wsit-client.xml"; 

private final ResourceLoader loader = new ResourceLoader() { 
    public URL getResource(String resource) { 
     return getClass().getClassLoader().getResource(CLIENT_CONFIG); 
    } 
}; 

@Override 
public <T> T getSPI(Class<T> spiType) { 
    if (spiType == ResourceLoader.class) { 
     return spiType.cast(loader); 
    } 
    return null; 
}  

아래 그림 그리고 그것은

마법처럼 작동하기 때문에이를 위해 내가 먼저 응용 프로그램을위한 컨테이너를 구현