【发布时间】:2015-03-13 12:06:58
【问题描述】:
谁能帮帮我。
我使用 resteasy 和 wildfly 8.1.0 创建了一个 Web 服务,但 @FormParam 总是返回 null。
用户服务.java
Path("/user")
@Produces(MediaType.APPLICATION_JSON)
public class UserService {
@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("/create")
public String create(@FormParam("first_name") String firstName, @FormParam("last_name") String lastName,
@FormParam("email") String email, @FormParam("username") String username,
@FormParam("password") String password, @FormParam("address") String address,
@FormParam("country") String country, @FormParam("zip") String zip, @FormParam("ssnlast4") String ssnlast4,
@FormParam("mobile") String mobile, @FormParam("dob_month") String dobMonth,
@FormParam("dob_year") String dobYear, @FormParam("reg_type") String regType,
@FormParam("avatar") String avatar) {
String str = firstName + ":" + lastName + ":" + email + ":" + username + ":" + password + ":" + address + ":" + country + ":" + zip+ ":" + ssnlast4 + ":" + mobile;
return str;
}
}
我使用POSTMAN 来测试服务。
返回将是{null:null:null:null:null:null:null:null:null:null}
谢谢。我很感激。
【问题讨论】:
-
谢谢。是否可以同时支持表单数据和
x-www-form-urlencoded?我试过@Consumes({"multipart/form-data","application/x-www-form-urlencoded"}),但似乎form-data在www-form-urlencoded工作时返回null -
没那么简单。对于多部分,您需要获取 resteas 的多部分依赖项。并且注释是不同的。然后,您需要检查实际出现的 Content-Type 以确定如何继续。您也可以有 2 个方法指向同一个 URI,只是使用不同的
@Consumes,这样一种方法将处理每种内容类型。见here for multipart support 和the dependency -
还有另一件事。您可以使用 Java 对象代替所有这些字段。在 java 类中,使用
@FormParam注释字段或设置器。而方法中的刚刚注释参数为@BeanParam。这样你的方法就不会那么混乱了
标签: jakarta-ee jax-rs resteasy wildfly-8