我剛開始使用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
你的項目結構是什麼樣的? –
沒什麼特別的,只是普通的Maven結構 – Perneel