2017-06-10 6 views
1

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に関連していると思います。しかし、私は十分に経験していないし、グーグルでの検索がうまくいかないので、私は経験豊富な人からの支援が必要です。

答えて

0

まあ、このようなエラーは、通常、その特定のURLに対してjerseyリソースメソッドへの複数のマッピングがある場合に発生します。

アップロードWebサービス/uploadのパスを追加していることを質問しました。したがって、以前に開発したAPIの1つにこのパスが既に存在する可能性があります。したがって、このパスを確認して更新してください。

このエラーの原因としては、herehereがあります。

+0

問題について正しい方向を指摘してくれてありがとう –

関連する問題