0

以下是我处理Multipart使用的代码httpclient

if(methodParams.getDataType().length()>0 && methodParams.getDataType().equals("org.springframework.web.multipart.MultipartFile")){
                isMultipart = true; 
                MultipartEntity entity = new MultipartEntity( HttpMultipartMode.BROWSER_COMPATIBLE );
                // For usual String parameters
                entity.addPart( methodParams.getVariableDefined(), new StringBody("".toString() , "text/plain", Charset.forName( "UTF-8" )));
                postURL.setEntity( entity );
             }

但我得到以下异常:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.james.mime4j.util.CharsetUtil.getCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
    at org.apache.http.entity.mime.MIME.<clinit>(MIME.java:51)
    at org.apache.http.entity.mime.HttpMultipart.<clinit>(HttpMultipart.java:85)
    at org.apache.http.entity.mime.MultipartEntity.<init>(MultipartEntity.java:77)
    at org.apache.http.entity.mime.MultipartEntity.<init>(MultipartEntity.java:96)
    at com.hexgen.tools.HexgenClassUtils.doPOST(HexgenClassUtils.java:151)
    at com.hexgen.reflection.HttpClientRequests.handleHTTPRequest(HttpClientRequests.java:74)
    at com.hexgen.reflection.HexgenWebAPITest.main(HexgenWebAPITest.java:115)

编辑:

以下是我使用的依赖项

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpmime</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.0.1</version>
</dependency>

如何解决这个问题。

4

1 回答 1

1

你可以再看一次依赖关系 ,也许你错过了一些罐子。

你也可以用更新版本的 httpclient 和 httpmime替换你的旧 jars 。httpclient从 4.1 版开始不再依赖 james mime4j 。

您可能最终还使用maven管理您的依赖项。以防万一你不使用它。

编辑:

您可以添加以下内容

<dependency>
    <groupId>org.apache.james</groupId>
    <artifactId>apache-mime4j</artifactId>
    <version>0.6</version>
</dependency>
于 2013-05-02T07:34:16.153 回答