Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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 HTTP状态415-不支持文本HTML的媒体类型_Java_Rest_Jersey - Fatal编程技术网

Java HTTP状态415-不支持文本HTML的媒体类型

Java HTTP状态415-不支持文本HTML的媒体类型,java,rest,jersey,Java,Rest,Jersey,我使用jersey创建了一个RESTFul web服务,它应该在POST请求中使用纯文本并生成html响应。我的web服务类如下所示: @Path("/calservices") public class CalServices { @FormParam("num1") private String number1; @FormParam("num2") private String number2; @POST @Path("/cal")

我使用jersey创建了一个RESTFul web服务,它应该在POST请求中使用纯文本并生成html响应。我的web服务类如下所示:

@Path("/calservices")
public class CalServices {
    @FormParam("num1")
    private String number1;
    @FormParam("num2")
    private String number2;

    @POST
    @Path("/cal")
    @Produces(MediaType.TEXT_PLAIN)
    @Consumes(MediaType.TEXT_HTML)
    public String result(CalServices cal){
        int sum = Integer.parseInt(cal.number1)+Integer.parseInt(cal.number2);
        return "<html> " + "<title>" + "Hello Jersey" + "</title>"
        + "<body><h1>" + "Hello Jersey ..Result is" +sum + "</body></h1>" + "</html> ";
    }
}
@Path(“/calservices”)
公共服务{
@FormParam(“num1”)
私有字符串编号1;
@FormParam(“num2”)
私有字符串编号2;
@职位
@路径(“/cal”)
@生成(MediaType.TEXT\u PLAIN)
@使用(MediaType.TEXT\uHTML)
公共字符串结果(CalServices cal){
int sum=Integer.parseInt(cal.number1)+Integer.parseInt(cal.number2);
返回“+”+“Hello Jersey”+“
+“+”你好,泽西..结果是“+sum+”+”;
}
}
我的HTML表单如下所示

<body class="nav-md">
    <div class="right_col">
        <div class="container">
            <div class="panel panel-primary" style="width: 50%;text-align: center;margin:15% " >
                 <div class="panel-heading">Addition</div>
                <div class="panel-body">
                <form action="rest/calservices/cal" method="post">
                    <div class="form-group row">
                        <div class="col-md-4">Number First</div>
                        <div class="col-md-4"><input type="text" class="form-control" name="num1"></div>
                    </div>
                    <br/>
                    <div class="form-group row">
                        <div class="col-md-4">Number Second</div>
                        <div class="col-md-4"><input type="text" class="form-control" name="num2"></div>
                    </div>
                        <br>
                    <div class="form-group row center">
                        <div class="col-md-4"><input type="submit" value="add" class="btn btn-primary"></div>
                        <div class="col-md-4"><input type="reset" value="reset" class="btn btn-warning"></div>

                    </div>
                    </form>
                    <a href="rest/calservices/message">Click Here</a>
                </div>
            </div>
            </div>
        </div>

</body>

附加
第一名

第二
我的web.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 <display-name>com.vogella.jersey.first</display-name>
 <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
   <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
     <init-param>
         <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.my.services</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
</web-app> 

com.vogela.jersey.first
泽西岛休息服务
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.my.services
1.
泽西岛休息服务
/休息/*

删除此方法参数
CalServices cal
。使用
@FormParam
s中的值并更改
@Consumes(MediaType.TEXT\u HTML)
tp
@Consumes(MediaType.APPLICATION\u FORM\u URLENCODED)
@peeskillet,当我使用method=“post”时,我从Web服务获得休息,但如果是“get”webservice抛出exception.GET将参数设置为
@QueryParam
,而不是
@FormParam
,因为没有正文。你应该把它们放在方法参数中,而不是类字段中。谢谢@peeskillet,现在webservices在get和post两种情况下都可以正常工作了。