0

JAXB を使用してオブジェクトを自動的にシリアライズおよびデシリアライズする単純な Web サービスを作成しようとしています。

@XmlRootElement
public class SimpleObject {

    private int id;

    private String name;

    /* ... */
}

@Controller
public class SimpleObjectController {

    @RequestMapping("submit",method=RequestMethod.POST)
    public String doPost(@RequestBody SimpleObject value) {
        return value.toString();
    }
}

<?xml version="1.0"?>
<beans ...>

    <oxm:jaxb2-marshaller id="marshaller" class="path.to.objects"/>
</beans>

ただし、実際にリクエストを行うと、次のようになります。

HTTP Status 415
The server refused this request because the request entity is in a format not
supported by the requested resource for the requested method ().

Spring からログが返されないため、根本原因を特定するのが困難です。このプロセスに欠けている重要なステップはありますか?

4

1 に答える 1

0

通常、これは、リクエストに「application/xml」の Accept ヘッダーまたは Content Type ヘッダーがないことが原因です。また、Spring 3.1 を使用している場合は、次の方法でアノテーションをさらに明示的にすることができます。

@RequestMapping(value="submit",method=RequestMethod.POST, consumes="application/xml", produces="application/xml")
于 2012-07-12T21:47:24.977 に答える