2015-09-18 32 views
0

我剛開始使用Maven,並希望將當前的JavaFX8 FXML應用程序更改爲使用Maven。作爲測試,我試圖找回在Glassfish 3.澤西島和Maven結果java.lang.NoSuchMethodError

運行當我運行程序時,這種情況發生在我FXML控制器在initialize()從我的web服務的國家的名單:

CountryClientSSL cc = new CountryClientSSL(); 
cc.setUsernamePassword("username", "password"); 
ObservableList<Country> olCountries = FXCollections.observableArrayList(cc.findAll()); 

olCountries.stream().forEach((country) -> { 
    System.out.println(country.getName()); 
}); 

cc.close(); 

findAll()方法:

public List<Country> findAll() throws ClientErrorException { 
    WebTarget resource = webTarget; 
    resource = resource.path("countries"); 
    System.out.println(resource.getUri().toString()); 
    return resource.request(javax.ws.rs.core.MediaType.APPLICATION_XML).get(new GenericType<List<Country>>(){}); 
} 

的URI看起來很好,並與憑證作品,如果我在瀏覽器中測試它,但是被拋出以下錯誤:

... 
Caused by: java.lang.NoSuchMethodError: javax.ws.rs.core.MultivaluedMap.addAll(Ljava/lang/Object;[Ljava/lang/Object;)V 
at org.glassfish.jersey.client.ClientRequest.accept(ClientRequest.java:335) 
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:221) 
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:59) 
at DA.CountryClientSSL.findAll(CountryClientSSL.java:85) 
... 

我pom.xml文件具有澤西依賴性:

<dependency> 
     <groupId>javax.ws.rs</groupId> 
     <artifactId>javax.ws.rs-api</artifactId> 
     <version>2.0.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-client</artifactId> 
     <version>2.21</version> 
    </dependency> 

我在這裏NoSuchMethodError: MultivaluedMap.addAll in Jersey Client發現了類似的(舊)的問題,但它並沒有幫助我更進一步。有人能指出我正確的方向嗎?我做錯了什麼?

在此先感謝!

編輯:結構

src 
|-main 
    |-java 
      |-classes 
      |-DA 
      |-GUI (the controllers, still have to rename this) 
    |-resources 
      |-bundles 
      |-fxml 
      |-images 
      |-jnlp 
      |-styles 
target 
pom.xml 
+0

你的項目結構是什麼樣的? –

+0

沒什麼特別的,只是普通的Maven結構 – Perneel

回答

3

看起來你有你的類路徑JAX-RS 1.x的依賴,在你提到的問題描述:NoSuchMethodError: MultivaluedMap.addAll in Jersey Client

您可以運行mvn dependency:tree以打印項目的所有(傳遞)依賴關係。然後檢查是否有其他Jersey或javax.ws.rs依賴項在您真正想要的之前。

+0

謝謝,依賴:tree命令幫了我更多。這確實是Jira Rest RS客戶端(doh)正在使用的JAX-RS 1.x依賴關係。 – Perneel