2016-09-14 11 views
4

multipart/form-dataを使用してJAX-RSでファイルアップロードを実行しようとしています。私は、サーバーを起動しようとすると、それは私に、このエラーを与える:ジャージiのバージョン2.22.1で動作mimepullのMULTIPART_FORM_DATA:レスポンスタイプのパラメータの注入源が見つかりません

<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>org.glassfish.jersey.containers</groupId> 
     <artifactId>jersey-container-servlet-core</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-multipart</artifactId> 
     <version>${jersey.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.jvnet.mimepull</groupId> 
     <artifactId>mimepull</artifactId> 
     <version>1.9.6</version> 
    </dependency> 

</dependencies> 
<properties> 
    <jersey.version>2.22.1</jersey.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

バージョン:

[[FATAL] No injection source found for a parameter of type public javax.ws.rs.core.Response 
com.pododdle.resources.UploadResource.uploadAudio(int,int,java.io.InputStream,org.glassfish.jersey.media.multipart.FormDataContentDisposition) 
    at index 2.;source='ResourceMethod{httpMethod=POST, consumedTypes=[multipart/form-data], producedTypes=[text/html], suspended=false, suspendTimeout=0, suspendTimeoutUnit=MILLISECONDS, invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class 
com.pododdle.resources.UploadResource, handlerConstructors=[[email protected]]}, definitionMethod=public javax.ws.rs.core.Response 
com.pododdle.resources.UploadResource.uploadAudio(int,int,java.io.InputStream,org.glassfish.jersey.media.multipart.FormDataContentDisposition), parameters=[Parameter [type=int, source=auction_id, defaultValue=null], Parameter [type=int, source=category_id, defaultValue=null], Parameter [type=class java.io.InputStream, source=file, defaultValue=null], Parameter [type=class org.glassfish.jersey.media.multipart.FormDataContentDisposition, source=file, defaultValue=null]], responseType=class javax.ws.rs.core.Response}, nameBindings=[]}'] 

私のpom.xmlは、このようになりますここから到着:https://www.versioneye.com/java/org.glassfish.jersey.media:jersey-media-multipart/2.22.1

私は行方不明または正しく設定されていないものがありますか?この時に初心者です、そう私に簡単に行く... :)

+1

あなたの 'ResourceConfig'クラスに' MultipartFeature'を登録しましたか? 'register(MultipartFeature.class);'のようなものです。 –

+0

こんにちはCassio、私はresourceconfigクラスを持っていません。私は1つ必要ですか?それは何ですか? –

+0

あなたはそれを持つことができます。しかし、あなたは 'web.xml'にこの機能を登録することもできます。 –

答えて

4

あなたはResourceConfigを持っていないならば、web.xml配備記述子にMultiparFeatureを登録してみてください:あなたはより多くを持っている場合は

<init-param> 
    <param-name>jersey.config.server.provider.classnames</param-name> 
    <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value> 
</init-param> 

プロバイダクラス名は<param-value>で、,を使用してそれらを区切ります。

関連する問題