2014-09-22 1 views
1

편안한 서비스가받는 모든 요청에 ​​헤더를 추가하려고합니다. 아래의 인바운드 http 인터셉터가 호출되지만 헤더를 추가하지는 않습니다.http 요청 요격기 - cxf를 사용하는 안정적인 웹 서비스

package com.client.interceptors; 

    import java.util.Collections; 
    import java.util.List; 
    import java.util.Map; 

    import org.apache.cxf.interceptor.Fault; 
    import org.apache.cxf.message.Message; 
    import org.apache.cxf.phase.AbstractPhaseInterceptor; 
    import org.apache.cxf.phase.Phase; 

    public class ClientInterceptor extends AbstractPhaseInterceptor<Message> { 
     public ClientInterceptor() { 
      super(Phase.PRE_INVOKE); // Put this interceptor in this phase 
      System.out.println("inside constructor"); 
     } 

     public void handleMessage(Message msg) throws Fault { 
      // process the message 

      System.out.println("inside interceptor"); 
      Map<String, List> headers = (Map<String, List>) msg 
      .get(Message.PROTOCOL_HEADERS); 

      headers.put("token", 
      Collections.singletonList("abcd1234xyz56sa")); 

      msg.put(Message.PROTOCOL_HEADERS, headers); 

     } 
    } 

어떻게 달성 할 수 있습니까?

+0

하지만 편안하게 웹 서비스를 사용하고 있습니까? – Krishna

+0

예, 간단한 GET 서비스이고 브라우저에서 호출하면 – skonka

+0

브라우저에서 똑바로 가려는 경우 U 동일한 포스터로 도구를 사용할 수 있습니다. – Krishna

답변

0

글쎄, 내가 같은 솔루션을 가지고 있습니다. 이 봐. 도움이 될 수 있습니다.

Client client = Client.create(); 
    WebResource webResource =client.resource("URL"); 

    MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl(); 
    queryParams.add("json", js); //set parametes for request 

    appKey = "Addkey " + appKey; // appKey is unique number 

    //Get response from RESTful Server get(ClientResponse.class); 
    ClientResponse response = null; 
    response = webResource.queryParams(queryParams) 
          .header("Content-Type", "application/json;charset=UTF-8") 
          .header("Authorization", appKey) 
          .get(ClientResponse.class); 

    String jsonStr = response.getEntity(String.class); 
+0

고마워요.하지만 다시 이건 클라이언트와 연결됩니다. 내가 원하는 것은 서비스 끝에 추가하는 것입니다. 내 클라이언트가 자바 휴식 클라이언트 또는 브라우저에서 아약스 호출에서 그것은 관계없이 추가해야합니다. – skonka

+0

의미 u는 클라이언트 측에서 그것을 추가 할 필요가있다 나는 언제 불러 주소는 그렇지 않은가? – Krishna

+0

클라이언트 사이트에 추가하면 문제가되지 않습니다. 나는 클라이언트/요청에 관계없이 서버 측에 추가 할 수 있기를 원합니다. 배경을 제공하기 위해 기본적으로 이러한 헤더를 찾는 모의 휴식 서비스를 구축하고 있으므로 클라이언트 측 대신 서비스 끝에 추가하는 것을 선호합니다. – skonka

관련 문제