2016-10-17 4 views
0

サーブレットとJQueryを使用するJava Webアプリケーションがあります。単純にオブジェクトをJSONに変換して書き戻すサーブレットで$ .get()メソッドを使用します。これは以前から使用されていましたが、なんらかの理由でもう動作しません。私は$ .get()メソッドが全く呼び出されないことをデバッグで発見しましたが、Javascriptファイルの残りはです。 $ .get()メソッドをスキップするだけです。私は理由を理解できないようだ。ここに私のコードだ:

はJavaScript:

window.onload = function() { 

$.get('OrdersToJSONServlet', function (responseText) { 
// ...I use responseText to populate Google Charts 
} 

Javaサーブレット:

/** 
* <h1>Servlet implementation for converting order objects to JSON for use with JS</h1> 
*/ 
@WebServlet("/OrdersToJSONServlet") 
public class OrdersToJSONServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
/** 
* @see HttpServlet#HttpServlet() 
*/ 
public OrdersToJSONServlet() { 
    super(); 
    // TODO Auto-generated constructor stub 
} 

/** 
* @param request 
* @param response 
* @throws javax.servlet.ServletException 
* @throws java.io.IOException 
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
*  response) 
*/ 
    @Override 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    Object orders = request.getSession().getAttribute("orders"); 
    String json = new Gson().toJson(orders); 
    try { 
     response.getWriter().write(json); 
    } catch (IOException e) { 
     System.out.println("problem parsing JSON"); 
    } 
} 

} 

私は多分jQueryので参照されている注釈が何とか間違っていたと思ったが、私はどのようにわかりませんそれが本当の問題ならば。助けを前にありがとう!

+0

ブラウザからjsonのリンクを手動で押すだけで応答はありますか? – Arvind

+0

私は正直言って、私はJava開発者ではなくWeb開発者です。これが私の最初のWebプロジェクトです。あなたが話していることは、私が知らないGoogle開発者ツールの機能だと思う。しかし、javascriptコンソールを使用して、responseTextの内容をコンソールに単純に出力しているときに$ .getを呼び出すと、nullが返されます。サーブレットにSystem.out.printlnを追加するか、ブレークポイントを使用すると、$ .getが決して起動されないという前提をサポートしています。 –

+0

私は間違ってはいませんが、ブラウザのアドレスバーに移動してサーブレットに絶対URLをコピーして貼り付け、Enterキーを押してエラーがあるかどうかを確認するとどうなりますか? – Arvind

答えて

0

このような状況に興味のある人は、自分で問題を見つけました。 $ .getメソッドはwindow.onloadの内部にあります。私のJavascriptは外部ファイルにあり、この2つは互換性がありませんでした。愚かな間違い!

関連する問題