我正在传递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>
包括的图书馆如下:
所以请帮我解决这个错误。我是JavaRESTWeb服务的新手,但我正在努力解决这个问题。
我解决了将JSON形式的数据发送到POST url的问题,方法是将genson
库添加到我的项目罐中。它提供了将Java对象序列化到JSON和反序列化JSON流以Java对象的方法。这是一个json
嗨Siddhesh Kalgaonkar,
看看这个