2017-02-06 7 views
1

, 바람직하게는 WebLogic 관리 콘솔을 사용하여 관리되는 JAX-WS 클라이언트 (@WebServiceRef으로 삽입) 을 애플리케이션 외부에서 구성하려고합니다.애플리케이션 외부에서 JAX-WS @WebServiceRef 클라이언트 구성

예를 들어, 웹 서비스 호출을 수행 할 때 서버에서 인증하도록 HTTP 요청에서 전송할 사용자 이름과 암호를 설정하십시오.

컨테이너에서 제공하는 기능을 사용하는 경우 구성 만 필요하지만 수동으로 수행해야한다는 단점이 있습니다.

WebLogic을 사용하여 SAP NetWeaver를 사용할 수 있었습니까?

@Stateless 
public class HolidayClientImpl { 

    // I want this dependency to be already configured, instead of doing it myself. 
    @WebServiceRef 
    private MyRemoteService myRemoteService; 

} 

답변

0

많이 검색 한 후 WebLogic에서 사용할 수있는 기능을 찾지 못했습니다. 적어도 버전 10.3.6과 12에서는 존재하지 않습니다. 이 같은 클라이언트 구성, 뭔가를 구현하는 것을 의미

는 :

MyPort port = service.getHTTPPort(); 
Map<String, Object> requestContext = ((BindingProvider) port).getRequestContext(); 

// URL 
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://www.remoteservice.com/service"); 

// Timeouts 
requestContext.put(BindingProviderProperties.CONNECT_TIMEOUT, 5000); 
requestContext.put(BindingProviderProperties.REQUEST_TIMEOUT, 30000); 

// Authentication 
requestContext.put(BindingProvider.USERNAME_PROPERTY, "user"); 
requestContext.put(BindingProvider.PASSWORD_PROPERTY, "password"); 
+0

이 각 시스템에 동일한 암호를 사용하지 않고 dev에, 테스트 및 자극에 변화없이 응용 프로그램을 배포 할 수 없음을 의미? –

+0

@DavidLakatos 아니요 David (데이터베이스, 등록 정보 파일 등) 외부의 값 (사용자 이름, 비밀번호 등)을 저장하고 빌드/배포하지 않고 값을 변경할 수 있습니다. 내 코드는 정적 값을 가지고 있지만 클라이언트 구성을 수행하는 방법을 보여주는 코드 단순화입니다. 여기서 핵심은 WebLogic이 JAX-WS의 내부 구성을 제공하지 않는다는 것입니다. 일반적으로 우리는 데이터베이스 또는 XML 파일에 속성을 저장합니다. 시나리오에 따라 캐시를 사용할 수도 있고 사용하지 않을 수도 있습니다. 일반적으로 이러한 값은 자주 변경되지 않으므로 메모리에 저장하는 것이 좋습니다. – BonanzaOne

+0

내 주요 접근 방식은 코드를 변경하거나 외부 리소스 (예 : 속성 파일, db)를 사용하지 않고 배포 중에 Weblogic 배포 계획을 통해 일부 응용 프로그램 속성을 변경하는 것입니다. 그것이 실현 가능하다고 생각하십니까? –