미안이 주요 방법에서 그리 즐 HTTP 서버를 만들려고 내가이 IllegalArgumentException가 무엇입니까 만들 때 : 나는 MultiPartConfigProvider과의 새로운 인스턴스를 모두 수동으로 등록하는 것을 시도했다널 MultiPartConfig GrizzlyHttpServer
java.lang.IllegalArgumentException: The MultiPartConfig instance we expected is not present. Have you registered the MultiPartConfigProvider class?
을 클래스 자체 (주석 행 참조). 나는 무엇을 놓칠 수 있 었는가? 이 스택 트레이스입니다
public class ResourceServer
{
public static final String HOST = "localhost";
public static final int PORT = 8080;
public static final String ROOT = "dummy";
public static final URI BASE_URI = ResourceUriBuilder.getBaseURI(HOST, PORT, ROOT);
private static final String BASE_PACKAGE_NAME = "com.mycompany.myapp.resource";
public static HttpServer startServer()
{
final ResourceConfig rc = new ResourceConfig().packages(true, BASE_PACKAGE_NAME);
// rc.register(new MultiPartConfig());
//
// MultiPartConfigProvider provider = new MultiPartConfigProvider();
// rc.register(provider);
// rc.register(MultiPartConfig.class);
return GrizzlyHttpServerFactory.createHttpServer(BASE_URI,rc);
}
public static void main(String[] args) throws IOException
{
final HttpServer server = startServer();
// ...
}
}
:
이
코드입니다java.lang.IllegalArgumentException: The MultiPartConfig instance we expected is not present.
Have you registered the MultiPartConfigProvider class?
at com.sun.jersey.multipart.impl.MultiPartReaderClientSide.<init>(MultiPartReaderClientSide.java:102)
com.mycompany.myapp.resource.server.ResourceServer.startServer(ResourceServer.java:37)
at com.mycompany.myapp.resource.server.ResourceServer.main(ResourceServer.java:47)
그리고 이것들은 POM 파일의 관련 종속 있습니다
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey</groupId>
<artifactId>jersey-bom</artifactId>
<version>${jersey.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>16.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.6</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
<version>2.5.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>2.5.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<inherited>true</inherited>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<jersey.version>2.7</jersey.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
편집 : 이것은 파일 리소스 파일 업로드를 위해 MultiPart 지원을 사용하려고합니다. 이 자료는 오류의 원인이되는 :
@Path("/file")
public class FileResource
{
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
// Empty method here
}