我正在尝试使用jersey和使用Postman的restful web服务实现POST方法,以便在java中使用rest客户端。现在我无法使用post方法将数据插入数据库。我在mysql数据库名称中有表有3个字段。 id(主键,自动增量),firstname,lastname。我在那里创建了java类,一个是person作为模型类,PersonResource类用于声明REST api和PersonService,用于实现REST方法来进行crud操作。
PersonResource class is:
@Path("/person")
public class PersonResource {
DbConnection connect=new DbConnection();
Connection conn=null;
PersonService service=new PersonService();
@POST
@Consumes(MediaType.APPLICATION_JSON)// specifies the request body content
@Produces(MediaType.APPLICATION_JSON)
public Person addMessage(Person person) throws Exception{
return service.addMessage(person);
}
}
PersonService类是:
public class PersonService {
DbConnection connect=new DbConnection();
Connection conn=null;
public Person addMessage(Person person) throws Exception {
Person p=new Person();
String sql="insert into person (firstname,lastname) values(?,?)";
conn=connect.databaseConnection();
PreparedStatement pst=conn.prepareStatement(sql);
pst.setString(1,p.getFirstName());
pst.setString(2,p.getLastName());
pst.executeUpdate();
pst.close();
return person;
}
}
我已成功按人员ID检索人员信息。现在我想从postman发出post请求,在mysql数据库中插入数据。
从postman我发帖请求并在标题中选择内容类型application / json并以json格式在原始文本中写入数据。当我点击发送按钮时,它获得415 Unsupported Media Type。
任何人都可以帮助我如何捕获邮递员数据以插入数据库或任何帮助如何使用来自postman的REST在数据库中插入记录的post方法?这是我的邮递员窗口。
提前致谢
答案 0 :(得分:1)
由于您获得了不受支持的操作异常,您的服务可能就在那里,您可以获取它。但是,数据格式之间并不起作用。这通常发生在您期望发送的不同内容(JSON)时,由于您声明使用JSON,因此看不到这种情况。
我认为序列化不起作用,你正在获得String并期待JSON。用于确认您可以修改或创建另一个接受纯文本并发送相同请求正文的服务。
如果确认 - 球衣应该能够轻松地序列化简单的物体。您只需要为其添加正确的依赖项。无论是杰克逊,格森等。通常你可以简单地声明如下的jersey-json依赖。确保存在一些序列化程序。
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.8</version>
</dependency>
检查this tutorial教程:几乎是你愿意做的。