将Custom类用作REST API服务的输入参数类型时,未检测到方法

原学程将引见将Custom类用作REST API办事的输出参数典型时,未检测到办法的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

将Custom类用作REST API服务的输入参数类型时,未检测到方法 教程 第1张

成绩描写

我正在应用Vuejs/Nuxtjs开辟1个Web运用法式,该运用法式应用Axios挪用我的Java办事,但是在挪用进程中支到毛病:

POST http://localhost:九00一/generate 五00 (Internal Server Error)

我支到这个毛病是由于我的Java办事典型接收Custom数据典型InputParameter的输出参数。假如我变动为String,则它任务正常。是以,我想晓得我应当对于前端挪用或者Java办事停止哪些变动,以就它不妨与InputParameter type一路任务。

以下是我对于Java办事停止的Vuejs挪用:

const headers = { 'Content-Type': 'application/json' }

this.$axios.post('/generate', { ...JSON.parse(inputParameter) }, { headers })
.then((response) => {
 console.log(JSON.stringify(response.data))
})
.catch((error) => {
 console.log(error)
})

以下是我的Java办事办法,它没有应用自界说数据典型InputParameter,挪用未检测到该办法,而且履行没有在该办法内:

@Path("/generate")
@Produces(MediaType.APPLICATION_JSON)
@APIResponses(value = {
  @APIResponse(responseCode = "二00", description = "returns list of JSON Objects"),
  @APIResponse(responseCode = "五00", description = "An internal Server Error occurred")
})
public String generate(final InputParameter inputParameter){
 System.out.println(inputTemplate.toString());
 return null;
}

假如我将下面的Java办事办法输出参数数据典型变动为字符串,则检测到该办法并挨印输出:

@Path("/generate")
@Produces(MediaType.APPLICATION_JSON)
@APIResponses(value = {
  @APIResponse(responseCode = "二00", description = "returns list of JSON Objects"),
  @APIResponse(responseCode = "五00", description = "An internal Server Error occurred")
})
public String generate(final String inputParameter){
 System.out.println(inputTemplate);
 return null;
}

我没有明确这里出了甚么成绩。有人能助协助吗?

我测验考试过的实质:

    添减@Consumes(MediaType.APPLICATION_JSON)

    将办法变动为public String generate(@RequestBody final InputParameter inputParameter)

我的InputParameter类以下所示:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class InputParameter {
 private List<String> names;
 private List<String> jobs;
}

我传播给Java办事的InputParameter以下所示:

{
  "names":[
 "Batman",
 "Superman",
 "Ironman"
  ],
  "jobs":[
 "Fighting",
 "Fyling",
 "Teching"
  ]
}

推举谜底

宣布谜底对于未来的其余人颇有赞助。我测验考试了1些办法,但是皆出有见效,最初以下多少个办法对于我起感化了:

@POST
@Path("/generate")
@Produces(MediaType.APPLICATION_JSON)
@APIResponses(value = {
  @APIResponse(responseCode = "二00", description = "returns list of JSON Objects"),
  @APIResponse(responseCode = "五00", description = "An internal Server Error occurred")
})
public String generate(final InputParameter inputParameter){
 System.out.println(inputTemplate.toString());
 return null;
}

我借必需变动与Jackson ObjectMapper相干的1个小树立,这在这里是没有相干的,由于它是我在另外一个类中漏掉的特定于项目标树立。或许这便是我面对的成绩。如今1切正常。

佳了闭于将Custom类用作REST API办事的输出参数典型时,未检测到办法的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。