我有一个RestEasy rest webservice,我用一些数据POST一个json,并且该方法有一个对象作为反映发布数据的参数但是我得到了以下例外:
org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type [simple type, class si.arctur.webservices.OrganizationWS$OrganizationWrapper]: can not instantiate from JSON object (need to add/enable type infmation?)
构造函数已定义,我找不到找不到合适构造函数的原因?
我的代码是:
@POST
@Consumes("application/json")
@Produces("application/json")
public Response createNewOrganization(OrganizationWrapper organization) {
.........
}
对象:
public class OrganizationWrapper implements java.io.Serializable {
private static final long serialVersionUID = 5931983940786473663L;
private String idOrganization = "";
private String name= "";
private String address= "";
private String zipId= "";
private String zipName= "";
private String province= "";
private String country= "";
private String registerNum= "";
private boolean taxObligation = false;
private String taxNumber= "";
private String phoneNum= "";
private String faxNum= "";
private String email= "";
private String webPage= "";
public OrganizationWrapper(){}
public OrganizationWrapper(String idOrganization){
this.idOrganization = idOrganization;
}
public OrganizationWrapper(String idOrganization, String name,
String address, String zipId, String zipName, String province,
String country, String registerNum, boolean taxObligation,
String taxNumber, String phoneNum, String faxNum, String eMail,
String webPage) {
this.idOrganization = idOrganization;
this.name = name;
this.address = address;
this.zipId = zipId;
this.zipName = zipName;
this.province = province;
this.country = country;
this.registerNum = registerNum;
this.taxObligation = taxObligation;
this.taxNumber = taxNumber;
this.phoneNum = phoneNum;
this.faxNum = faxNum;
this.email = eMail;
this.webPage = webPage;
}
public String getIdOrganization() {
return idOrganization;
}
public void setIdOrganization(String idOrganization) {
this.idOrganization = idOrganization;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getZipId() {
return zipId;
}
public void setZipId(String zipId) {
this.zipId = zipId;
}
public String getZipName() {
return zipName;
}
public void setZipName(String zipName) {
this.zipName = zipName;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getRegisterNum() {
return registerNum;
}
public void setRegisterNum(String registerNum) {
this.registerNum = registerNum;
}
public boolean isTaxObligation() {
return taxObligation;
}
public void setTaxObligation(boolean taxObligation) {
this.taxObligation = taxObligation;
}
public String getTaxNumber() {
return taxNumber;
}
public void setTaxNumber(String taxNumber) {
this.taxNumber = taxNumber;
}
public String getPhoneNum() {
return phoneNum;
}
public void setPhoneNum(String phoneNum) {
this.phoneNum = phoneNum;
}
public String getFaxNum() {
return faxNum;
}
public void setFaxNum(String faxNum) {
this.faxNum = faxNum;
}
public String getEMail() {
return this.email;
}
public void setEMail(String eMail) {
this.email = eMail;
}
public String getWebPage() {
return webPage;
}
public void setWebPage(String webPage) {
this.webPage = webPage;
}
}
json数据:
{"idOrganization":"2005032113214816","name":"Arctur d.o.o.","address":"Industrijska cesta 5","zipId":"5000","zipName":"Nova Gorica","province":"","country":"SI","registerNum":"5562325","taxObligation":true,"taxNumber":"76530566","phoneNum":"+386.53029070","faxNum":"+386.53022042","email":"info@arctur.si","webPage":""}
答案 0 :(得分:0)
你是如何将json发布到API的? 请尝试添加标题:Content-Type = application / json
您必须指出您请求的内容类型。
答案 1 :(得分:0)
我找到了解决方案,问题是OrganizationWrapper是在与webservice相同的类中定义的内部类。当我将类移到webservice类之外时,它开始工作。不知道这个的原因,但它现在正在为我工作。