申し訳ありませんが、java-noob のタグが表示されませんでした。
Spring で既存の安らかな API を使用しています。私は、それぞれが文字列を返すいくつかのユーティリティ メソッドを備えた新しい API を追加することを任されました。ここまでは順調ですね。すべてがうまくいっています。
文字列をオブジェクトとして返す単純なラッパーを追加したところ、ビルド/デプロイ/テストが可能になり、次のような応答が返されました
{ id: "12345" }
Accept ヘッダーを指定するとapplication/xml
、次の例外が発生します。
org.springframework.web.HttpMediaTypeNotAcceptableException: 受け入れ可能な表現が見つかりませんでした
このパッケージの他のメソッドは、xml と json の両方で正常にシリアル化されるようです。コントローラー ベースで使用されているカスタム シリアライゼーション コードは見当たりません。また、それがどこで処理されているか (またはシリアライゼーションに関連しているのか) もわかりません。誰かがどこから探し始めるかを理解するのを手伝ってくれますか?
これが私の[簡略化された]コントローラーです:
@Controller
public class UtilController extends ControllerBase
{
@XmlRootElement(name="util_response")
public static class UtilResponse extends APIResponseBase
{
private String id;
@XmlElement(name="id")
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
}
@RequestMapping(value = "/{pid}/util/output", method = RequestMethod.GET)
@ResponseBody
public UtilResponse output(HttpServletResponse httpResponse,
@PathVariable("pid") int pid,
@RequestParam(value = "id", required=true) String id) throws Exception
{
UtilResponse utilResponse = new UtilResponse();
utilResponse.setId(id);
return utilResponse;
}
}
私も更新@RequestMapping
して追加しようとしましたがproduces = "application/xml"
(はい、これが実際に何をするのかまったくわかりません)、効果はありませんでした。
真剣に、私はこのすべての Java がどのように「機能する」か (貿易による .net dev) について本当に新しいので、もっと理解したいと思っています。何が何であるかはわかりませんJackson
が、私たちのプロジェクトではそれへの参照が見られず、他のすべてが機能しているようです。締め切りもあるので、うまくいくことだけが優先されることもあります。