提问者:小点点

415使用海报扩展在JavaREST Web服务中使用POST时出错


我正在传递JSON数据,比如

{
    "empname" : "seo"
}  

到POST url,但返回415错误,即不支持的媒体类型
排除故障后,我发现内容类型在poster extension中应为“application/json”,我尝试了相同的方法,但没有成功
下面是我的服务代码

package webService;

import java.sql.Connection;
import java.util.ArrayList;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import com.google.gson.Gson;

import dao.Database;
import dao.Project;
import dto.FeedObjects;
import model.ProjectManager;


@Path("/WebService")
public class FeedService 
{
    @GET
    @Path("/GetFeeds")
    @Produces("application/json")
    public String feed()
    {
    String feeds = null;
    try
    {
    ArrayList<FeedObjects> feedData = null;
    ProjectManager projectManager= new ProjectManager();
    feedData = projectManager.GetFeeds();
    Gson gson = new Gson();
    System.out.println(gson.toJson(feedData));
    feeds = gson.toJson(feedData);
    }

    catch (Exception e)
    {
    System.out.println("Exception Error"); //Console 
    }
    return feeds;
    }

    @GET
    @Path("/insert/{empname}/{empsalary}")

    public String insertEmpName(@PathParam("empname") String empname,@PathParam("empsalary") String empsalary) {

        String result = "Employee Insertion Failed!!!!";
        try {

            Database database = new Database();
            Connection connection = database.Get_Connection();

            Project n = new Project();
            boolean b = n.insertEmpName(connection, empname,empsalary);

            if (b == true) {
                result = "Employee Added SuccessFully!!!!";

            } else {
                result = "Employee Already Exists!!!";
            }

        } catch (Exception e) {
            System.out.println(e);
        }

        return result;

    }

    @POST
    @Path("/justTesting")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response myresponse(FeedObjects fb)
    {
        System.out.println("Name is "+fb.getEmpname());
        return Response.status(201).entity("Tested !!").build();

    }


}  

这是我的类,包含变量的setter和getter,我将它们作为参数传递给上面的方法,并使用它的对象(即fb)调用它们

package dto;

public class FeedObjects
{

private String empname;
private String empsalary;
public FeedObjects() {
    // TODO Auto-generated constructor stub
}
public String getEmpname() {
    return empname;
}
public void setEmpname(String empname) {
    this.empname = empname;
}
public String getEmpsalary() {
    return empsalary;
}
public void setEmpsalary(String empsalary) {
    this.empsalary = empsalary;
}

}  

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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>FirstProject</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
    <servlet>
        <servlet-name>ServletAdaptor</servlet-name>
        <servlet-class>
            com.sun.jersey.server.impl.container.servlet.ServletAdaptor
            </servlet-class>
<init-param>
  <param-name>com.sun.jersey.config.property.packages</param-name>
  <param-value>webService</param-value>
</init-param>
            <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletAdaptor</servlet-name>
        <url-pattern>/REST/*</url-pattern>
    </servlet-mapping>
</web-app>

包括的图书馆如下:

  • asm-3.1。罐子

所以请帮我解决这个错误。我是JavaRESTWeb服务的新手,但我正在努力解决这个问题。


共2个答案

匿名用户

我解决了将JSON形式的数据发送到POST url的问题,方法是将genson库添加到我的项目罐中。它提供了将Java对象序列化到JSON和反序列化JSON流以Java对象的方法。这是一个json

匿名用户

嗨Siddhesh Kalgaonkar,

看看这个