0
我想我公司與特定人鏈接,所以我決定再在我的函數添加一個參數(函數RESPONSABLE創建公司)。下面是代碼:加入的人ID的功能RESPONSABLE創建公司(JEE - Web服務)
@POST
public Response create(Long idPerson, CompanyDTO company , @Context UriInfo uriInfo) {
if(company == null)
throw ...
if(idPerson == null)
throw ...
CompanyDTO companyUsed = company;
PersonDTO person =
this.servicePerson.searchPersonById(idPerson);
companyUsed.setPerson(person);
Long idCompany =
this.service.saveCompany(companyUsed); //serviceCompany
if(idCompany == null)
throw ...
UriBuilder builder = uriInfo.getAbsolutePathBuilder();
builder.path(Long.toString(idCompany));
return Response.created(builder.build()).build();
}
當我不使用idPerson在參數它工作得很好,但我在我的代碼指定靜態idPerson。
public Response create(CompanyDTO company , @Context UriInfo uriInfo) {
...
PersonDTO person =
this.servicePerson.searchPersonById(1L); // I specify it here statically
... }
因此,這裏的問題我想補充idPerson在我的參數。如果我這樣做,我得到了500錯誤。這裏是我的例外的一部分:
com.sun.jersey.spi.container.ContainerResponse.mapMappableContainerException
The exception contained within MappableContainerException could not be
mapped to a response, re-throwing to the HTTP container
org.codehaus.jackson.map.JsonMappingException: Can not deserialize
instance of java.lang.Long out of START_OBJECT token
如果我這樣做,我得到了一個405錯誤(方法不允許)@Molin – bsm
@ysd你的要求是什麼樣的? –
如果我理解你在代碼中做了什麼,它應該是這個URL POST **/companies/idPerson(所以我創建一個Person)然後我做了POST ** link/companies/1 **,它不起作用當然POST **鏈接/公司**不起作用。我想將一家公司與一個人聯繫起來,問題是如何指定此人。我的頭文件**內容類型應用程序/ json ** Body公司JSON。@ Molin – bsm