泽西岛 - 带文本正文部分的多部分数据表格
问题描述:
我试图将多部分表单作为POST请求发送到泽西岛2.22.1服务器。该请求包含文件和多个文本字段。服务器端发生的事情是,我只能接收文件作为InputStream,但是我收到的所有文本参数均为null。泽西岛 - 带文本正文部分的多部分数据表格
这是我有:
的pom.xml:
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.22.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.22.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.22.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.22.1</version> <!-- Make sure the Jersey matches
the one you are currently using -->
</dependency>
<dependency>
<groupId>org.jvnet.mimepull</groupId>
<artifactId>mimepull</artifactId>
<version>1.9.6</version>
</dependency>
的web.xml:
<servlet>
<servlet-name>vedica-api</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>
org.glassfish.jersey.media.multipart.MultiPartFeature
</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.nws.vedica.api,com.fasterxml.jackson</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
和代码:
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.glassfish.jersey.media.multipart.FormDataParam;
...
@POST
@Produces("text/plain")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response createDocument(
@FormDataParam("meno") String name,
@FormDataParam("rc") String rc,
@FormDataParam("typzml") String typzml,
@FormDataParam("auto") String auto,
@FormDataParam("verzia") String verzia,
@FormDataParam("documentcustomname") String doccustomname,
@FormDataParam("docpath") String docpath,
@FormDataParam("file") InputStream data,
@FormDataParam("file") FormDataContentDisposition fileInfo
) {
...
return Response.ok().build();
}
因此,所有的字符串参数为空。
这里是如何我寄来请求的截图:
你能解释一下我做错了,如何解决这一问题?
谢谢
答
okey,所以我发现它是我的IDE不正确地创建war包。代码和依赖关系很好,但至少我发现参数区分大小写!
我认为FormParam其大小写敏感的,也许它没有什么关系,但是你试过在请求和@FormDAtaParam即typzml VS TypZML – cesaregb
很好的情况下匹配,你可以看到有相匹配的PARAMS确切地说,然后是部分匹配的......全为空 – greengold