您需要在应用程序上启用MultiPart功能。启用此功能会将必要的邮件正文阅读器,编写器注入到Jersey 2应用程序中。这是您如何注册它们:
在服务器端(http-server):
final ResourceConfig resourceConfig = new ResourceConfig(MultiPartResource.class);resourceConfig.register(MultiPartFeature.class);
在服务器端(servlet部署):
import org.glassfish.jersey.filter.LoggingFilter;import org.glassfish.jersey.media.multipart.MultiPartFeature;import javax.ws.rs.core.Application;import java.util.HashSet;import java.util.Set;public class MyApplication extends Application { @Override public Set<Class<?>> getClasses() { final Set<Class<?>> classes = new HashSet<Class<?>>(); // register resources and features classes.add(MultiPartFeature.class); classes.add(MultiPartResource.class); classes.add(LoggingFilter.class); return classes; }}web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>Jersey Servlet</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>com.aruld.jersey.multipart.MyApplication</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey Servlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping></web-app>
在客户端:
final ClientConfig clientConfig = new ClientConfig();clientConfig.register(MultiPartFeature.class);Client client = ClientFactory.newClient(clientConfig);
我在这里在Github中整理了一个端到端的Jersey 2 MultiPart示例。



