2015-03-06 1 views
1

Я пытаюсь написать маршрут, чтобы вызвать успокоительные услуги. все они не имеют тела, а параметры запроса. когда я звоню (https) Служба отдыха я получаю 401 (несанкционированный). , но если я использую простой non-ssl (http) и вызывать его, то он отлично работает на другой apis. вот мой шаблон маршрута и продюсера.Привлечение услуг Camel Rest дает мне 401 с помощью restlet

Маршрут

public static final String MONITOR_URI = "https://lsapi.thomson-pharma.com//ls-api-ws/ws/rs/opportunity-v1/match?drug=bevacizumab&company=Genentech Inc&fmt=json"; 

public static final String DIRECT_MONITOR = "direct:getDrugInfo"; 

from(DIRECT_MONITOR).to(MONITOR_URI).convertBodyTo(String.class); 

========================= Main Class ========= ======================

public static void main(String[] args) throws Exception { 
    CamelContext context = createCamelContext(); 
    context.start(); 
    final String text = "paracetamol"; 
    final String fmt = "json"; 
    final String authMethod = "Digest"; 
    final String authUsername = "TR_Internal_024"; 
    final String authPassword="ZTYA5S1KLF7WCDMN"; 
    final String query = String.format("text=%s&fmt=%s&authMethod=%s&authUsername=%s&authPassword=%s",text,fmt,authMethod,authUsername,authPassword); 
    Map<String,Object> headers = new HashMap<String, Object>(){ 
     { 
      put(Exchange.HTTP_METHOD,"POST"); 
      put(Exchange.AUTHENTICATION,"Digest"); 
      put("authUsername","TR_Internal_024"); 
      put("authPassword","ZTYA5S1KLF7WCDMN"); 
      put(Exchange.HTTP_QUERY,query); 
     } 
    }; 
    ProducerTemplate template = context.createProducerTemplate(); 

    String request = template.requestBodyAndHeaders(Constants.DIRECT_MONITOR,null,headers,String.class); 
    System.out.println("Body is : "+request); 
} 
  1. Может кто-то поможет, как настроить SSL с помощью верблюда CXF или Restlet?
  2. Как добавить поставщика учетных данных в контекст CamelContext или Spring?
+0

Может кто-то поможет, как настроить SSL с помощью верблюжьи CXF или restlet. – user3022698

+0

Я не знаком с интеграцией Apache Camel + Restlet, но в отношении HTTPS вы посмотрели собственную документацию Restlet на эту тему? http://restlet.com/technical-resources/restlet-framework/guide/2.3/core/security/https – glaforge

ответ

0

APOLOGIES для задержки. Я получил это, отработав компонент из camelContext ниже, это код.

==================================================================================================================================== ===========================

HttpComponent http = (HttpComponent) camelContext.getComponent("https"); 
     HttpClientConfigurer httpClientConfigurer = http.getHttpClientConfigurer(); 
     if(httpClientConfigurer == null){ 
      System.out.println("httpClientConfigurer is null"); 
      if(http.getHttpClientConfigurer() == null){ 
       HttpConfiguration httpConfiguration = new HttpConfiguration(); 
       httpConfiguration.setAuthMethod(AuthMethod.Digest); 
       httpConfiguration.setAuthUsername("xxxxx"); 
       httpConfiguration.setAuthPassword("xxxxxx"); 
       http.setHttpConfiguration(httpConfiguration); 
      } 
     } 

Привет Ram