2014-01-10 54 views
1

我看到我的tomcat日誌下面的錯誤......Java類型類com.sun.jersey.multipart.FormDataMultiPart和MIME媒體類型的multipart/form-data的沒有被發現

ERROR csjspi.container .ContainerRequest - 消息正文閱讀器 Java類com.sun.jersey.multipart.FormDataMultiPart和Java類型 類com.sun.jersey.multipart.FormDataMultiPart和MIME媒體類型 未找到multipart/form-data。與MIME媒體類型兼容的已註冊郵件正文閱讀器 是: / - > com.sun.jersey.core.impl.provider.entity.FormProvider com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity。 InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider $一般 com.sun.jersey.core.impl.provider。 entity.R eaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider $ StreamSourceReader com.sun.jersey.core.impl.provider。 entity.SourceProvider $ SAXSourceReader com.sun.jersey.core.impl.provider.entity.SourceProvider $ DOMSourceReader com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider $ General com.sun.jersey.json。 impl.provider.entity.JSONArrayProvider $一般
com.sun.jersey.json.impl.provider.entity.JSONObjectProvider $一般
com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider
com.sun.jersey。 core.impl.provider.entity.XMLRootElementProvider $ General com.sun.jersey.core.impl.provider.entity.XMLListElementProvider $ General com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider $ General com。 sun.jersey.core.impl.provider.entity.EntityHolderReader
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider $ General com.sun.jersey.json.impl.provider.entity.JSONListElementProvider $ General


在客戶端,我看到以下信息:

POST https://dev.project.org/upload返回響應狀態415 不支持的介質類型。


我用Google搜索周圍和提醒的是,球衣,multipart.jar和mimepull.jar需要爲依賴關係。

編譯 'com.sun.jersey.contribs:新澤西州多:1.18' 我已經在我的build.gradle以下依賴

包裝後並在Tomcat中部署應用程序(的Apache Tomcat /7.0.47)我看到球衣多部分1.18。jarmimepull-1.9.3.jar位於app/WEB-INF/lib文件夾中。


以下是我的服務器端代碼:

@POST 
    @Consumes("multipart/form-data") 
    @Path("/v2/upload") 
    public Response uploadV2(FormDataMultiPart multipart) { 

     logger.info("**POST /v2/upload"); 

     return Response.ok("success!").build(); 

    } 

我仍然得到了服務器端和客戶端同樣的錯誤。任何幫助表示讚賞。 謝謝。

回答

0

我也得到這種相同的行爲,收到415 Unsupported Media Type的響應。如果我的輸入參數是一個字符串,我可以打路徑。只要我將參數更改爲FormDataMultiPart,我就會得到415.解決它的方法是確保我的com.sun.jersey包的版本相同。

與Maven:

<dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-core</artifactId> 
     <version>1.18.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-json</artifactId> 
     <version>1.18.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>1.18.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-servlet</artifactId> 
     <version>1.18.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey.contribs</groupId> 
     <artifactId>jersey-multipart</artifactId> 
     <version>1.18.1</version> 
    </dependency> 

球衣-多的任何不匹配會給我所提到的行爲。

2

你只需要mimepull.jar添加到您的lib

或與Maven

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

相關問題