Ajax Requestmoz-nullprincipal unter Apache Tomcat

Jungspund

Mitglied
Hallo,
Ich habe folgendes Problem:
Ich sende einen Ajax Post als XHR and eine Java Klasse ab, diese gibt mir eine XML als Response wieder. Diese sollte dann ausgewertet werden um zu überprüfen, ob der Login eines Useres erfolgreich war oder nicht.
In meinem Entwicklungstool, mit integrieten Weblogic Server funktioniert dies auch alles einwandfrei.
lege ich die die Dateien jedoch auf einen Tomcat Server, so erhalte ich folgende Fehlermeldung in Firebug.

HTML:
XML-Verarbeitungsfehler: Kein Element gefunden Adresse: moz-nullprincipal:{25b1cb57-2827-4f0f-87a8-88a901ae3eb5} Zeile Nr. 1, Spalte 1:^

ich hatte soweit gesehen, dass ein nullprincipal auftritt, wenn Ajax gegen die same origin policy verstößt, wunder mich jedoch, dass die Auswertung der XML vorher im integrierten Weblicserver meiner IDE funktioniert hat.

Hier noch der Ajax Aufruf und das Java Servlet:
Javascript:
$.post("login",{nr:kdNr, user:use, passwort:pw},function(xml){
                // es wird überprüft, ob der login erfolgreich war, ansonsten werden alle Fehler ausgegeben.
                var logged = $(xml).find("logged").text();
                if(logged == "true") {
                    $('#nutzen').val($(xml).find("nutzungsart").text());
                    $('#bdb').val($(xml).find("bs_bd").text());
                    $('#dbv').val($(xml).find("db_version").text());
                    $('#discv').val($(xml).find("disc_version").text());
                    $('#bsias').val($(xml).find("bs_ias").text());
                    $('#iasv').val($(xml).find("ias_version").text());
                    if(navigator.appName == "Microsoft Internet Explorer") {
                        login2(355);
                    }
                    else if(navigator.appName == "Netscape") {
                        login2(370);
                    }
                    else if(navigator.appName == "Opera") {
                        login2(370);
                    }
                    else 
                        login2(368);
                }
                else {
                    alert($(xml).find("fehler").text());
                }
            },"xml");

Das Servlet
Java:
    protected void login(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException,
                                                                                          ClassNotFoundException,
                                                                                          SQLException {
        // Aus Sicherheitsgründen ein bisschen umgeschrieben

        String kdNr             = request.getParameter("nr");
        String login            = request.getParameter("user");
        String password         = request.getParameter("passwort");
        //String[] connectionDetails     = new FilesReader().getConnection();
        DBConnection connection = new DBConnection(IP,SSID,DBNAME,USER,PW,false); // IP etc durch Variablen ausgetauscht.
        //DBConnection connection = new DBConnection(connectionDetails[0],connectionDetails[1],connectionDetails[2],connectionDetails[3],connectionDetails[4],false);
        request.getSession().setAttribute("connection"  , connection);
        request.getSession().setAttribute("kdNr_old"    , request.getParameter("kundennummer"));
        request.getSession().setAttribute("passwort_old", request.getParameter("passwort"));
        request.getSession().setAttribute("user_old"    , request.getParameter("user"));
        request.getSession().removeAttribute("fehler");
        response.setContentType("text/xml");
        response.getWriter().println("<settings>");
        
                        
        String query           = "Select Daten" +
                                 "  from    DATENBANK"+
                                 "  where   KDNR        = ?";

                        PreparedStatement pStmt;
                        try 
                        {
                            pStmt = connection.getCon().prepareStatement(query);
                            int buffer = 0;
                            try {
                                buffer = Integer.parseInt(kdNr);
                            }
                            catch(NumberFormatException e) {
                                response.getWriter().println("<fehler>die Kundennummer besitzt ein falsches Format\n</fehler>"); 
                            }
                            pStmt.setInt(1, buffer);
                            ResultSet rs = pStmt.executeQuery();
                            
                                if (rs.next())
                                {
                                    boolean loginCheck = false;
                                    boolean passwordCheck = false;
                                    if(rs.getString(2).equals(login)) {
                                        loginCheck = true;
                                    }
                                    else {

                                        response.getWriter().println("<fehler>Der User ist falsch\n</fehler>");
                                    }
                                    if(rs.getString(3).equals(password)) {
                                        passwordCheck = true;
                                    }
                                    else {
                                        response.getWriter().println("<fehler>Das Passwort ist falsch\n</fehler>");
                                    }
                                    if(loginCheck && passwordCheck) {
                                        response.getWriter().println("<logged>true</logged>");
                                        response.getWriter().println("<nutzungsart>"+ ((rs.getString(4) == null) ? "":rs.getString(4)) +"</nutzungsart>");
                                        response.getWriter().println("<bs_bd>"+ ((rs.getString(5) == null) ? "":rs.getString(5))+ "</bs_bd>");
                                        response.getWriter().println("<db_version>"+ ((rs.getString(6) == null) ? "":rs.getString(6))+ "</db_version>");
                                        response.getWriter().println("<disc_version>"+ ((rs.getString(7) == null) ? "":rs.getString(7))+ "</disc_version>");
                                        response.getWriter().println("<bs_ias>"+ ((rs.getString(8) == null) ? "":rs.getString(8)) + "</bs_ias>");
                                        response.getWriter().println("<ias_version>"+ ((rs.getString(9) == null) ? "":rs.getString(9))+ "</ias_version>");
                                        response.getWriter().println("<kd_id>"+ rs.getString(16)+ "</kd_id>");
                                        request.getSession().setAttribute("kd_id", rs.getString(16));

                                    }
                                }
                                else
                                {
                                        response.getWriter().println("<fehler>Die Kundennummer ist nicht vorhanden\n</fehler>");
                                        response.getWriter().println("<fehler>"+ new File(".").getCanonicalPath()+ "</fehler>");
                                        response.getWriter().println("<logged>false</logged>");
                                }

                                rs.close();
                                pStmt.close();
                        }
                        catch (SQLException e)
                        {
                            response.getWriter().println("<fehler>Es ist ein Fehler bei der Ausführung der Abfrage zum login aufgetreten</fehler>"); 
                        }

        response.getWriter().println("</settings>");
    }

Wie es Scheint, ist das ganze ein Problem meiner web.xml, die aus irgendwelchen nicht ergründlichen Handlungen meine Servlets nicht anspricht
 
Zuletzt bearbeitet von einem Moderator:
Zurück