2016-09-25 2 views
-1

Привет, мой код, и я новый CXF. это дает ошибку. как это решить?CXF3.1-java.lang.AbstractMethodError

Мой код: -

String username = "myusername"; 
    String password = "myPassword"; 

    String usernameAndPassword = username + ":" + password; 
    String authorizationHeaderName = "Authorization"; 
    String authorizationHeaderValue = "Basic " + java.util.Base64.getEncoder().encodeToString(usernameAndPassword.getBytes()); 

    // Build the form for a post request 
    MultivaluedMap< String, String> formParameters = new MultivaluedHashMap(); 
    formParameters.add("field1", "fieldValue1"); 
    formParameters.add("field2", "fieldValue2"); 

    // Perform a post request 
    String restResource = "https://restserver:8080/app-name/rest-api/"; 
    Client client = ClientBuilder.newClient(); 
    Response res = client.target(restResource) 
     .path("login") // API Module Path 
     .request("application/json") // Expected response mime type 
     .header(authorizationHeaderName, authorizationHeaderValue) // The basic authentication header goes here 
     .post(Entity.form(formParameters)); 

Ниже ошибка: -

Exception in thread "main" java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.path(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder; 
at org.apache.cxf.jaxrs.client.spec.ClientImpl$WebTargetImpl.path(ClientImpl.java:364) 
at org.ymd.CxfClient.main(CxfClient.java:35) 

Моей зависимость: -

  • CXF-RT-RS -client-3.1.7.jar
  • CXF-RT-транспорты-клиент-HC-3.1.7.jar
  • CXF-расслоение-jaxrs-2.1.2.jar
  • CXF-RT-Frontend-jaxrs-3.1.7.jar
  • CXF-ядро-3.1.7.jar
  • CXF-RT-транспорты-клиента-3.1.7.jar
  • javax.persistence-2.1.1.jar -cxf-апи-2.7.18.jar
  • javax.ws.rs-api-2.0.jar
+2

Кажется странным, что все ваши банки имеют версию 3.1.7, за исключением 'cxf-bundle-jaxrs-2.1.2.jar', которая равна 2.1.2 – mangotang

ответ

0

Я решил свою проблему. это из-за конфликта версий. Когда я использую maven для получения зависимостей, все разрешилось.