2012-03-23 111 views
1

私はNetbeansとGlassfishサーバーを使ってSpring 3.0 Webアプリケーションを開発しています。私はGlassfishからTomcatへの移行を試みるにあたり、公開アプリケーション用にアプリケーションを配備する必要がありますが、私はエラーに遭遇しています。私のアプリケーションは、アプリケーション内のURLから情報をつかむためにAJAXを使用していますが、私は、URLを要求したとき、私は、次を得る:GlassFishからTomcatへの移行

この要求によって識別されるリソースは、リクエストに応じて特性を持つ応答を生成することができるだけではありません許容ヘッダー()を "受け入れる"。それはそうのようなルックスを要求している情報について

マイコントローラ:

@RequestMapping(value = "/electricity/usage/") 
public @ResponseBody List<UsageData> getEUsage(HttpSession session) { 

    UsageDataDAO UsageDAO = new UsageDataDAO(); 

    User u = (User) session.getAttribute("user"); 

    List<UsageData> l = UsageDAO.getAllUsageData(u.getAccountNum(), 'e'); 

    return l; 
} 

私はTomcatに移行するときですが、なぜでしょうか?

+0

すべての例外?アプリケーションがまったく起動しましたか? – Ralph

+0

はいアプリケーションは、一部のJSONデータを取得するようリクエストしたURLを除いてすべて動作します。 –

+0

[これがあなたのところに当てはまる場合](http://stackoverflow.com/questions/2828968/mapping-restful-ajax-requests-to-spring)の状況を参照してください。 –

答えて

0

このエラーが発生したため、お使いのブラウザは、サーバに送信し、あなたがjQueryのようなライブラリを使用している場合は、「同意する」ヘッダは、サーバは/ URL /電気/使用量から

を返すことができるものと一致していません( およびNOTクロスドメインを要求やって、これは重要です)、ブラウザがこのヘッダーを受け入れるお送りします:

受け入れ:アプリケーション/ JSON

あなたはそのエラーを取得する/サーバがURLを考えていないことを意味しelecticity/usageはJSON応答を返すことができます。これは、webmvc-config.xmlファイルで設定されています。これは私がJSONリクエストに関連する鉱山で持っているものです。

<!-- allows rendering responses in XML and JSON formats --> 
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" p:order="1"> 
    <property name="mediaTypes"> 
     <map> 
      <entry key="xml" value="application/xml"/> 
      <entry key="json" value="application/json"/> 
     </map> 
    </property> 
    <property name="defaultViews"> 
     <list> 
      <bean class="org.springframework.web.servlet.view.xml.MarshallingView"> 
       <property name="marshaller"> 
        <bean class="org.springframework.oxm.xstream.XStreamMarshaller" p:autodetectAnnotations="true"/> 
       </property> 
      </bean> 
      <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/> 
     </list> 
    </property> 
</bean> 

は春MVCでJSONレスポンスを実現するために、このチュートリアルを参照してください:http://rwehner.wordpress.com/2010/06/09/2-ways-to-create-json-response-for-ajax-request-in-spring3/

このコードはGlassfishの上で動作しますが、Tomcatがないのはなぜ - それは良いです質問...

あなたはクロスドメインリクエストを行っている場合は、このトピックが適用されます:JQuery's getJSON() not setting Accept header correctly?

+0

それはただのことです。何かが間違って設定されているという証拠はありません。私は@responsebodyハンドラをリンクのように使用しています。このコードはグラスフィッシュで完璧に動作しますが、Tomcatではエラーが発生します。 –

+0

この記事は役に立ちますか? http://www.gotoquiz.com/web-coding/programming/java-programming/jsonajax-in-spring-mvc/ – anton1980

+0

また、FFでFirebugを使用して、ブラウザにAccept:application/jsonヘッダーがあることを確認しますこのAJAXリクエストを行うとき。そうであれば、あなたのURL /電気/使用/がapplication/jsonのコンテンツタイプを返すことになっていることを知らないアプリケーション設定であることを確認できます。 – anton1980

関連する問題