Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jersey Jax rs出现容器异常_Java_Jersey_Jax Rs - Fatal编程技术网

Java Jersey Jax rs出现容器异常

Java Jersey Jax rs出现容器异常,java,jersey,jax-rs,Java,Jersey,Jax Rs,我是Jax-Rs的新手。我尝试将数据从html发布到Webresource方法。在运行时,我遇到了异常,即 exception javax.servlet.ServletException: com.sun.jersey.api.container.ContainerException: Exception injecting parameters to Web resource method com.sun.jersey.spi.container.servlet.WebCompo

我是Jax-Rs的新手。我尝试将数据从html发布到Webresource方法。在运行时,我遇到了异常,即

exception 

javax.servlet.ServletException: com.sun.jersey.api.container.ContainerException: Exception injecting parameters to Web resource method
    com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:310)
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:314)
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:239)


root cause 

com.sun.jersey.api.container.ContainerException: Exception injecting parameters to Web resource method
    com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider$FormParamInInvoker.getParams(FormDispatchProvider.java:103)


root cause 


java.lang.ClassCastException: java.lang.String
    com.sun.jersey.core.util.MultivaluedMapImpl.getFirst(MultivaluedMapImpl.java:81)
    com.sun.jersey.core.util.MultivaluedMapImpl.getFirst(MultivaluedMapImpl.java:53)
    com.sun.jersey.server.impl.model.parameter.multivalued.StringExtractor.extract(StringExtractor.java:61)
    com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider$FormParamInjectable.getValue(FormDispatchProvider.java:233)
我提到了以下Html页面和Web资源方法:-

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Test Jax-RS Object</title>
</head>
<body>
<form action="services/fruitstore/loadObject1" method="POST" >
<table>
<tr>
    <td>ID:</td>
    <td><input type="text" name="id"></td>
</tr>
<tr>
    <td>Name:</td>
    <td><input type="text" name="name"></td>
</tr>
<tr>
    <td><input type="submit" Value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>
@POST
@Path("loadObject1")
@Consumes("application/x-www-form-urlencoded")

public void loadObject1(@FormParam("id") String id,@FormParam("name") String name){
    System.out.println("====================");
    System.out.println("Fruit ID"+id+" Name"+name);

}

请帮帮我?

看来问题出在
@Path
上-应该对类进行注释,而不是方法。以下方面应起作用:

package net.asteasolutions.imagenation.boundary;

import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;

@Path("loadObject1")
public class TestService {

    @POST
    public void loadObject1(
        @FormParam("id") String id,
        @FormParam("name") String name
    ) {
        System.out.println("====================");
        System.out.println("Fruit ID"+id+" Name"+name);
    }
}

请注意,您不需要显式使用“application/x-www-form-urlencoded”,Jersey会自动计算出来。:-)

您是否会为
id
name
获取多个值?