2016-03-23 8 views
0

イム私の春コントローラーからJSONレスポンスを取得しようとしています。イムは、私は以下org.springframework.web.HttpMediaTypeNotAcceptableException Spring MVCの4.2.5

<properties> 
    <spring.version>4.2.5.RELEASE</spring.version> 
    <jstl.version>1.2</jstl.version> 
    <servletapi.version>2.5</servletapi.version> 
    <jackson.version>2.6.3</jackson.version> 
</properties> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>${jackson.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>${jackson.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-annotations</artifactId> 
     <version>${jackson.version}</version> 
    </dependency> 

次のようにのpom.xmlでのジャクソン関連のjarファイルを持っている例外

org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation 

の下に取得することは

@ResponseBody 
    @RequestMapping(value = "/getNodes.htm",produces="application/json") 
    public List<NodeDTO> getNodes() { 
... 
return nodes; 
} 

Imはブラウザや上記の例外に406エラーを取得し、私のコントローラであり、サーバーログに記録します。私のブラウザは、Acceptヘッダにapplication/jsonがあることを正しく送信しています。しかし、まだ私はこの問題に直面しています。私は彼らの誰も私の問題を解決しない多くのフォーラムを通過しました。それを解決するのを手伝ってください。

+1

私はあなたがエラーを取得すると思います。この値=「/getNodes.htm」「HTM」のWeb XMLでサーブレット・マッピングを示しpelase何を意味しています –

答えて

2

@RequestMapping注釈は間違っています。特に、.htmという拡張子の使用は間違っています。

@RequestMapping(value = "/getNodes.json",produces="application/json") 

または多分

@RequestMapping(value = "/getNodes",produces="application/json") 

スプリングMVCを返すために、コンテンツの種類を識別するために、URLの拡張子を使用しなければなりません。あなたの場合、拡張子は.htmで、SpringはHTMLとして解釈します。ただし、JSONを指定するアノテーションのproducesプロパティと競合します。

Springがこのような競合するコンテンツタイプをどのように処理するかはわかりませんが、の拡張子を.jsonに置き換えたり、拡張子を完全に削除したりすると、心配する必要はありません。

関連する問題