我正在使用REST在eclipse中创建一个非常简单的HTTP Status 415 – Unsupported Media Type
混合移动项目演示。我的想法是,我注册了详细信息,当我提交登录按钮时,它会调用REST URL并保存登录详细信息。
问题是获得index.html
。
<form name="login" id="register" action="http://localhost:8080/peerby/user/" method="post">
<label for="fname">First Name</label>
<input id="fname" name="firstName" placeholder="First Name" type="text"/>
<br>
<label for="lname">Last Name</label>
<input id="lname" name="lastName" placeholder="Last Name" type="text"/>
<br>
<label for="adr">Address</label>
<input id="adr" name="address" placeholder="Address" type="text"/>
<br>
<label for="eml">Email</label>
<input id="eml" name="email" placeholder="Email" type="email"/>
<br>
<label for="pswd">Password</label>
<input id="pswd" name="pasword" placeholder="password" type="password"/>
<br>
<input type="submit" value="Login" id="log"/>
</form>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
是:
userResorce
这是@Path("user")
@Produces(MediaType.APPLICATION_JSON)
public class UserResource {
private UserDAO userDao = new UserDAO();
@GET
public List<UserModel> getAllUsers() {
return userDao.getAllUserDao();
}
@GET
@Path("/{userID}")
public UserModel getUser(@PathParam("userID") Long id) {
return userDao.getUserDao(id);
}
@POST
@Consumes(MediaType.TEXT_HTML) //used several mediaType
public List<UserModel> saveUser(UserModel user) {
userDao.addUserDao(user);
return userDao.getAllUserDao();
}
}
文件:
Postman
使用cordova
它可以正常工作。但是使用Unsupported Media Type
,我得到MediaType
。我为@Consumes
使用了多个Unsupported Media Type
。但我得到的只是Sunday
。
答案 0 :(得分:0)
在HTML表单中设置enctype,如下所示:
<form name="login" id="register" action="http://localhost:8080/peerby/user/" method="post" enctype='application/json'>
在REST控制器中,将其作为application / JSON使用,
@Consumes(MediaType.APPLICATION_JSON)
在审核您的代码后,您错过了以下内容:
POM.xml中的依赖
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.8</version>
在部署描述符(web.xml)中,您缺少jersey-serlvet的init参数:
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
在您的服务器实施服务中,您需要正确定义资源以确保将请求路由到正确的方法。
班级注释:
@Path("/user")
public class UserResource {
方法级别注释
@POST
@Path("/create")
@Consumes(MediaType.APPLICATION_JSON)
Produces(MediaType.APPLICATION_JSON)
public Response saveUser(UserModel user) {
修复所有这些后,将HTML POST操作URL部署并更改为“peerby / rest / user / create”以成功发布数据。