Multipartを使って画像をアップロードできる/アップロードエンドポイントを持つJax-RS(Jersey)を実装しようとしています。プロジェクトには既に他の部分が実装されていて正しく動作していますが、マルチパート機能を追加しようとすると問題が発生します。TomcatのJersey Webサービスに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の部分があります。
WARをTomcatで起動すると、Internal Server Error 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に関連していると思います。しかし、私は十分に経験していないし、グーグルでの検索がうまくいかないので、私は経験豊富な人からの支援が必要です。
問題について正しい方向を指摘してくれてありがとう –