私はこの性質の他のいくつかの質問を見ましたが、それらは法案に完全には適合しませんでした。
現在、2つの異なるコントローラーからJSONを返そうとしています。私のコントローラーの1つでは問題なく動作しますが、2番目のエンドポイントに到達すると、406エラーが発生し、何が問題なのか理解できません。コントローラのアクションは次のとおりです。
@RequestMapping("/v1/companies/name/{companyName}")
public @ResponseBody ResultsList<CompanyResult> getCompaniesByName(@PathVariable("companyName") String companyName) {
if (StringUtils.isEmpty(companyName)) {
throw new HttpMessageNotReadableException("blah");
}
ResultsList<CompanyResult> results = companySearchService.getCompaniesByName(companyName);
return results;
}
これが私が返そうとしているモデルです:
public class ResultsList<T> {
@XmlElement(name = "results")
private ArrayList<T> results;
public int resultCount() {
return this.results.size();
}
public void addResult(T result) {
this.results.add(result);
}
public ResultsList() {
this.results = new ArrayList<T>();
}
}
コントローラコードからわかるように、私のResultsListはCompanyResultオブジェクトで構成されています。
public class CompanyResult implements ICompany {
@XmlElement(name = "companyName")
private String companyName;
@XmlElement(name = "symbol")
private String symbol;
@XmlElement(name = "city")
private String city;
@XmlElement(name = "state")
private String state;
......
したがって、私のコントローラーは@XmlElementで注釈が付けられた@RequestBody ResultsListを返し、リストに含まれるオブジェクトにも@XmlElementで注釈が付けられます。これは、他のシナリオを機能させるために私がしなければならなかったことです。しかし、これは失敗します。誰か教えてもらえますか?