2016-10-17 2 views
0

Ich habe eine Java-Webanwendung, die Servlets und JQuery verwendet. Ich verwende die $ .get() -Methode für ein Servlet, das einfach ein Objekt in JSON konvertiert und es zurückschreibt. Das hat früher funktioniert, aber aus irgendeinem Grund funktioniert es nicht mehr. Ich habe in Debug gefunden, dass die $ .get() -Methode überhaupt nicht aufgerufen wird, aber der Rest der Javascript-Datei ist. Es überspringt nur die $ .get() -Methode insgesamt. Ich kann jedoch nicht herausfinden, warum. Hier ist mein Code:

JavaScript:

window.onload = function() { 

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

Die Java Servlet:

/** 
* <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"); 
    } 
} 

} 

Ich dachte, dass vielleicht die Anmerkung, die von JQuery verwiesen wird, war irgendwie falsch, aber ich bin nicht sicher, wie oder wenn das das eigentliche Problem ist. Vielen Dank im Voraus für die Hilfe!

+0

Erhalten Sie eine Antwort, wenn Sie den json Link einfach manuell im Browser drücken? – Arvind

+0

Ich werde ehrlich sein, ich bin viel mehr ein Java-Entwickler als ein Web-Entwickler und das ist mein erstes Web-Projekt. Ich vermute, dass das, worüber du sprichst, eine Funktion von Google Developer Tools ist, von der ich vielleicht nichts weiß. Aber wenn ich die JavaScript-Konsole verwende und $ .get aufruft, während ich den Inhalt von responseText einfach auf die Konsole drucke, bekomme ich null. Wenn ich ein System.out.println zum Servlet hinzufüge oder einen Haltepunkt verwende, wird es nie aufgerufen, was die Annahme unterstützt, dass $ .get niemals ausgelöst wird. –

+0

Versteh mich nicht falsch, aber ich sage, was ist, wenn du zur Adressleiste des Browsers gehst und die absolute URL in das Servlet kopierst und Enter drückst, um zu sehen, ob es einen Fehler gibt oder du die gewünschte Antwort bekommst? – Arvind

Antwort

0

Für andere, die an dieser Situation interessiert sind, habe ich das Problem selbst herausgefunden. Die $ .get-Methode befand sich innerhalb von window.onload. Mein Javascript befand sich in einer externen Datei und diese beiden waren nicht kompatibel. Dummer Fehler!

Verwandte Themen