【发布时间】:2016-08-12 05:15:48
【问题描述】:
我测试了这段代码的值
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.TEXT_PLAIN)
public String getE(@FormDataParam("file") InputStream inputStream,@FormDataParam("file") FormDataContentDisposition fileMetaData) {
String out = "";
Map<String, String> l = fileMetaData.getParameters();
Collection<String> s = l.values();
Iterator i = s.iterator();
while(i.hasNext())
{
out += i.next()+" ";
}
返回; }
我遇到了这个异常
严重:StandardWrapper.Throwable org.glassfish.jersey.server.model.ModelValidationException:应用程序资源模型的验证在应用程序初始化期间失败。 [[致命] 在索引 0 处找不到公共 java.lang.String my.Service.getE(java.io.InputStream,org.glassfish.jersey.media.multipart.FormDataContentDisposition) 类型的参数的注入源。; source='ResourceMethod{httpMethod=POST,consumedTypes=[multipart/form-data],producedTypes=[text/plain],suspended=false,suspendTimeout=0,suspendTimeoutUnit=MILLISECONDS,invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class my.Service, handlerConstructors=[org.glassfish.jersey.server.model.HandlerConstructor@4023c98]}, definitionMethod=public java.lang.String my.Service.getE(java.io.InputStream,org.glassfish.jersey.media .multipart.FormDataContentDisposition),参数=[参数[type=class java.io.InputStream,source=file,defaultValue=null],参数[type=class org.glassfish.jersey.media.multipart.FormDataContentDisposition,source=file, defaultValue=null]], responseType=class java.lang.String}, nameBindings=[]}']
依赖是
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey</groupId>
<artifactId>jersey-bom</artifactId>
<version>2.16</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.16</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.16</version>
</dependency>
我的服务类
@Path("empdata")
公共类服务{
EmpService service = new EmpService();
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.TEXT_PLAIN)
public String getE(@FormDataParam("file") InputStream inputStream,@FormDataParam("file") FormDataContentDisposition fileMetaData) {
String out = "";
Map<String, String> l = fileMetaData.getParameters();
Collection<String> s = l.values();
Iterator i = s.iterator();
while(i.hasNext())
{
out += i.next()+" ";
}
return out;//
}
}
我注册了我的 ResourceConfig 子类
this is how i am sending request and file this is how my request header and body part looks like 谢谢!
【问题讨论】:
-
请出示一段代码。
-
我正在使用 Chrome 扩展的 REST 控制台
-
您的 REST API 使用什么框架?
-
显示项目中的依赖项。
-
是的,谢谢我得到了答案,这是我的错误
标签: web-services rest