2015-01-06 1 views
1

Я не могу найти правильную зависимость для реализации клиента REST с помощью tomEE и CXF.Как реализовать REST-клиент с tomee и CXF с помощью MultivaluedMap?

Мой модуль имеет такую ​​зависимость:

<dependency> 
    <groupId>org.apache.openejb</groupId> 
    <artifactId>tomee-jaxrs</artifactId> 
    <version>1.7.1</version> 
    <scope>provided</scope> 
</dependency> 

Начальная реализация клиента проста. Он должен обслуживать почтовый метод и представлять MultiValueMap.

import javax.ws.rs.core.MediaType; 
import javax.ws.rs.core.MultivaluedMap; 

import org.apache.cxf.jaxrs.client.WebClient; 
import org.apache.cxf.jaxrs.ext.form.Form; 
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

    public class RestClient<T> { 

     private static final Logger LOG = LoggerFactory.getLogger(RestClient.class); 
     private WebClient client; 
     private Class<T> type; 

     public RestClient(Class<T> aType, String aBaseUrl, String aPath) { 

      this.client = WebClient.create(aBaseUrl); 
      this.client.path(aPath); 
      this.client.accept(MediaType.APPLICATION_JSON); 
      this.type = aType; 
     } 

     public T post(MultivaluedMap<String, String> params) { 

      LOG.debug("sending POST request to: " + this.client.getCurrentURI()); 
      Form theForm = new Form(params); 
      T theReponse = (T) this.client.post(theForm, this.type.getClass()); 
      return theReponse; 
     } 
    } 

Проблема заключается в том, что я не могу понять реализацию javax.ws.rs.core.MultivaluedMap. В результате я не могу назвать свой метод. :( Я вижу только интерфейс. Является ли CXF полностью предоставленным моим pom.xml и не имеет ли он реализации этого интерфейса? Какую зависимость я должен использовать для обеспечения правильной работы CXF с помощью tomEE?

я не нашел ни одного примера, на веб-сайте.

ответ

0

с CXF, то MultivaluedMap реализация org.apache.cxf.jaxrs.impl.MetadataMap.

В новых JAX-RS 2.0 версии, есть javax.ws.rs.core.MultivaluedHashMap, но с JAX-RS 1.x , реализация интерфейса специфична для реализации.

+0

thank вы! Это помогло. Anymway теперь маршалинг от json to T не работает, но это другая проблема. –

 Смежные вопросы

  • Нет связанных вопросов^_^