アプリケーションでイメージを java.awt.BufferedImage オブジェクトとして提供しようとしています。GET を実行しようとすると、結果は次のようになります。
- Accept:image/jpeg は有効な画像をレンダリングします
- Accept:*/* は HTTP 406 を返します
私の servlet-context.xml の関連部分は次のとおりです。
<beans:bean id="messageAdapter"
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<beans:property name="order" value="1" />
<beans:property name="messageConverters">
<beans:array>
<beans:bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/>
</beans:array>
</beans:property>
</beans:bean>
そして、ここに私のコントローラーがあります:
@RequestMapping(value = "photo/{photoId:[0-9]+}", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
@ResponseBody
public BufferedImage getPhoto(
@PathVariable long photoId) {
return photoService.getPhoto(photoId);
}
MediaType.IMAGE_JPEG_VALUE は「画像/jpeg」です。*/* の受け入れヘッダーが HTTP 406 を生成することは決してないことを理解しています。これは、このページによると、呼び出し元がそのタイプのコンテンツを受け入れないことを示しています。
これは問題です。これは、ほとんどのブラウザの Accept ヘッダーに「*/*」が含まれており、ユーザーが Accept ヘッダーをハードコーディングしない限り、この画像を表示できないためです。
ここで何か不足していますか?
前もって感謝します。