即時通訊嘗試創建球衣客戶端來上傳文件。我已經搜索了我的網絡,但我找不到適合我的例外的解決方案。Jersey客戶端文件上傳異常:NoClassDefFoundError:org/glassfish/jersey/message/internal/HeadersFactory
這是我的客戶端代碼:
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriBuilder;
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.media.multipart.MultiPart;
import org.glassfish.jersey.media.multipart.MultiPartFeature;
//...
private static void clientUploadTest() {
ClientConfig config = new ClientConfig();
Client client = ClientBuilder.newClient(config);
client.register(MultiPartFeature.class);
URI baseUri = UriBuilder.fromUri("http://localhost/rest/test").build();
WebTarget target = client.target(baseUri);
MultiPart multiPart = new MultiPart();
}
如果我嘗試添加的多,我得到了以下異常。我嘗試了不同的方式,但我解決了我的問題。我也試過這樣的事情:
final FileDataBodyPart filepart = new FileDataBodyPart("file", new File("C:/Users/admin/Downloads/testtext.txt"));
FormDataMultiPart formDataMultiPart = new FormDataMultiPart();
final FormDataMultiPart multiPart = (FormDataMultiPart) formDataMultiPart.field("foo", "bar").bodyPart(filepart);
但我得到了同樣的錯誤。
Exception in thread "main" java.lang.NoClassDefFoundError: org/glassfish/jersey/message/internal/HeadersFactory at org.glassfish.jersey.media.multipart.BodyPart.<init>(BodyPart.java:70) at org.glassfish.jersey.media.multipart.MultiPart.<init>(MultiPart.java:66) at de.restclient.requests.ClientTest.clUploadtest(ClientTest.java:64) at de.restclient.requests.ClientTest.main(ClientTest.java:46) Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.message.internal.HeadersFactory at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 4 more
這是我進口的球衣文件。
林能正常GET和POST請求發送到服務器。但我也需要發送文件。 我希望有人能幫助我。
THX,對於快速回答。我添加了最新的jersey-media-multipart.jar,現在沒有錯誤。 Thx的提示。我有球衣 - 媒體 - 多部分2.0 - m11,但我認爲,這不是最新的。 –
您應該將版本與您已有的版本進行匹配。 – nobeh