我正在尝试实现一个Jax-RS(Jersey),它具有/ upload端点,用户可以使用Multipart上传图像。项目已经实现了其他部分并且工作正常,当我尝试添加Multipart功能时会出现问题。
我使用IntelliJ IDEA和Tomcat 8.5.xx来部署我的应用程序。
我在pom.xml中的依赖关系如下;
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.25.1</version> <!-- 2.10.1 -->
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.25.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.25.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.42</version>
</dependency>
</dependencies>
这是我的web.xml部分;
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value> org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
</init-param>
当我在Tomcat中启动WAR时,它显示内部服务器错误500和日志;
java.lang.IllegalStateException: The resource configuration is not modifiable in this context.
org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:274)
org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:221)
org.glassfish.jersey.server.ResourceConfig.register(ResourceConfig.java:453)
org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:387)
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177)
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369)
javax.servlet.GenericServlet.init(GenericServlet.java:158)
我不知道问题的原因是什么。从异常的名称,我猜它与web.xml添加的MultipartFeature有关。然而,由于我没有足够的经验并且我在谷歌上的搜索结果不好,我需要更有经验的人的帮助。