tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
1001
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Vatar Vatar ist offline Mitglied Brokat
    Registriert seit
    Feb 2004
    Ort
    Reykjavik
    Beiträge
    434
    Nabend.
    Ich mache gerade das jsp-tutorial und irgendwie will er die bean nicht laden.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    org.apache.jasper.JasperException: Attempted a bean operation on a null object.
        org.apache.jasper.runtime.JspRuntimeLibrary.handleGetProperty(JspRuntimeLibrary.java:601)
        org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:51)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    Ich vermute dass er die web.xml nicht geladen hat.

    Ich sollte vielleicht erwähnen, dass ich Eclipse mit dem Tomcat-Plugin nutze. Ich konnte schon Sachen anzeigen lassen, weshalb ich denke dass das Plugin richtig konfiguriert ist.

    aber mit der Zeile
    Code :
    1
    
    <jsp:getProperty name="greetingbean" property="greeting" />
    hat er seine Probleme

    Schon mal Danke im voraus
     

  2. #2
    Aufziehvogel Aufziehvogel ist offline Mitglied
    Registriert seit
    Oct 2004
    Beiträge
    19
    Wo wird greetingbean denn instanziiert?
     

  3. #3
    Vatar Vatar ist offline Mitglied Brokat
    Registriert seit
    Feb 2004
    Ort
    Reykjavik
    Beiträge
    434
    Danke für das Interesse.
    Der Code steht im Tutorial aber ich schreibs trotzdem nochmal.

    web.xml
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app>
        <servlet> 
            <servlet-name>start</servlet-name>
            <servlet-class>de.tutorials.StartServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>start</servlet-name>
            <url-pattern>/greeting</url-pattern>
        </servlet-mapping>
    </web-app>

    StartServlet.java
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    
    package com;
     
    import java.io.IOException;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
     
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    /**
     * @author holyfly
     * 10.05.2004 StartServlet
     */
    public class StartServlet extends HttpServlet {
        /* (non-Javadoc)
         * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                /* Die die von mir definierte Methode getGreetingBean() gibt mir eine
                 * JavaBean (Klasse mit get/set Methoden) zurück.
                 */ 
                GreetingBean bean = getGreetingBean();
                /* Die bean dem request "anhängen" */
                request.setAttribute("greetingbean",bean);
                /* RequestDispatcher auf die JSP hello.jsp holen */
                RequestDispatcher dispatcher = request.getRequestDispatcher("hello.jsp");
                /* über den RequestDispatcher den request, und den response auf 
                 * die JSP forwarden.
                 */
                dispatcher.forward(request,response);
        }
     
        /**
         * @return
         */
        private GreetingBean getGreetingBean() {
            GreetingBean bean = new GreetingBean();
            /* die von mir definierte Methode getDayTime bestimmt wie 
             * der Gruss aussehen soll (sprich guten Morgen, guten Abend ..)
             */
            bean.setDayTime(getDayTime());
            return bean;
        }
     
        /* (non-Javadoc)
         * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                /* einzelne kommentare in doGet() beachten */
                GreetingBean bean = getGreetingBean();
                bean.setDayTime(getDayTime());
                /* Wir holen uns die geposteten Daten, aus dem request */
                String name = request.getParameter("name");
                /* übergeben den namen der bean */
                bean.setName(name);
                request.setAttribute("greetingbean",bean);
                /* kurzform für das RequestDispatcher forward */
                request.getRequestDispatcher("index.jsp").forward(request,response);
        }
     
        /**
         * @return
         */
        private String getDayTime() {
            /* einen neuen Kalender erstellen, und auf die aktuelle Zeit setzen*/
            Calendar calendar = new GregorianCalendar();
            calendar.setTimeInMillis(System.currentTimeMillis());       
            /* ein Date object mit der aktuellen Zeit erstellen */
            Date now = calendar.getTime();
            
            /* Kalender auf 12:00 setzen und den Stamp für diese Zeit erhalten
             * um damit ein neues Date Object um 12:00 zu erhalten  */
            calendar.set(Calendar.HOUR_OF_DAY,12);
            calendar.set(Calendar.MINUTE,0);
            Date lunch = new Date(calendar.getTimeInMillis());
            
            /* Kalender auf 18:00 setzen und den Stamp dafür erhalten für ein 
             * erneutes Date Object */
            calendar.set(Calendar.HOUR_OF_DAY,18);
            Date evening = new Date(calendar.getTimeInMillis());
            
            /* Rueckgabe wird auf Morgen gesetzt und immer ein weiter wenn es
             * doch später ist. 
             */
            String daytime = "Morgen";
            if(now.after(lunch))
                daytime = "Tag";
            if(now.after(evening))
                daytime = "Abend";
            
            return daytime;
        }
        
    }

    GreetingBean.java
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    package com;
     
    /**
     * @author holyfly
     * 12.05.2004 GreetingBean
     */
    public class GreetingBean {
        private String dayTime, name;
        private String greeting;
        /**
         * @param dayTime The dayTime to set.
         */
        public void setDayTime(String dayTime) {
            this.dayTime = dayTime;
        }
        /**
         * @param name The name to set.
         */
        public void setName(String name) {
            this.name = name;
        }
        /**
         * @return Returns the greeting.
         */
        public String getGreeting() {
            String value = "Guten "+dayTime;
            if(name!=null)
                value+=" liebe(r) "+name;
            return value;
        }
    }

    index.jsp
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    <html>
    <!-- Angabe der genutzen Sprache in dieser JSP --> 
    <%@ page language="java" %> 
    <head>  
        <title>Mein erstes JSP</title> 
    </head> 
    <body>  
        <!-- Zugriff auf die GreetingBean instanz hier das Property greeting -->  
        <jsp:getProperty name="greetingbean" property="greeting" />  
        
        <br/>  
        <form action="greeting" method="post">  Ihr name: 
            <input name="name" type="text" />  
            <input type="submit" value="Los!" />  
        </formular>
        hallo
    </body>
    </html>
    Geändert von Vatar (10.02.05 um 18:13 Uhr)
     

  4. #4
    Aufziehvogel Aufziehvogel ist offline Mitglied
    Registriert seit
    Oct 2004
    Beiträge
    19
    Auf die schnelle würde ich sagen das der Fehler in der index.jsp liegt, denn dort ist das Objekt greetingbean nicht verfügbar bzw noch nicht instanziiert oder
    Code :
    1
    
       <jsp:getProperty name="greetingbean" property="greeting" />
    ist falsch scoped.

    Du solltest vorher

    Code :
    1
    
      <jsp:useBean id="greetingbean" class="com.GreetingBean" />

    benutzen um das greetingbean zu instanziieren, oder solltest, soweit das greetingbean vorhanden ist bei der getProperty methode den richtigen scope (session, request etc. )setzen.
     

  5. #5
    Vatar Vatar ist offline Mitglied Brokat
    Registriert seit
    Feb 2004
    Ort
    Reykjavik
    Beiträge
    434
    Super.
    Funktioniert zwar noch nicht ganz (die erste seite wird angezeigt, aber bei der ausführung kommt es zu einem anderen Fehler) aber jetzt kann ich mich wieder grob erinnern. Hab in meinem ersten praktikum mal ein wenig was mit jsp gemacht, das is aber schon 1,5 Jahre her.
    Werd mich mal durchackern.

    Thx


    edit: Problem erledigt. In der web.xml war noch ein anderer Packetpfad angegeben. Man sollte doch nichts ändern in einem tutorial (wenn man sich nicht so gut auskennt)
    Geändert von Vatar (10.02.05 um 21:11 Uhr)
     

  6. #6
    Avatar von Billie
    Billie Billie ist offline Mitglied Platin
    Registriert seit
    Jan 2003
    Ort
    Arzl im Pitztal (Tirol)
    Beiträge
    510
    So, nach einigen Stunden des herumexperimentierens und Googeln's hab ich die Schnauze voll. Ich bekomme den Selben Fehler, wobei ich alles aus dem Tutorial kopiert habe.

    Code :
    1
    
    Attempted a bean operation on a null object.

    Die Anweisung mit <jsp:useBean id="greetingbean" class="com.GreetingBean" /> hilft mir auch nicht weiter, denn ich weis nicht wie ich sie in diesem konkreten Beispiel Anwenden soll. Mit <jsp:useBean id="greetingbean" class="de.tutorials.GreetingBean" /> bekomme ich mal abwechselnd den obigen Fehler, ab und an mal den Hinweis, dass der Wert "de.tutorials.GreetingBean" ungültig ist.

    Bitte schreibt schnell, Tutorials die nicht funktionieren nerven echt.
     
    Fann Ég Fjalli Fallega Steina
    Faldi Dá Alla Vildi Deim Leyna
    Huldi Dar Hellisskúta Heillasteina
    Alla Mína Una eth slegu Óskasteina

  7. #7
    Registriert seit
    Feb 2004
    Beiträge
    592
    Hi, versuchts mal mit <form method="get" und nicht post.

    Ihr ruft ja schließlich auch die doGet() im Servlet auf.
     

  8. #8
    Avatar von Billie
    Billie Billie ist offline Mitglied Platin
    Registriert seit
    Jan 2003
    Ort
    Arzl im Pitztal (Tirol)
    Beiträge
    510
    Nein, das ist nicht das Problem.
     
    Fann Ég Fjalli Fallega Steina
    Faldi Dá Alla Vildi Deim Leyna
    Huldi Dar Hellisskúta Heillasteina
    Alla Mína Una eth slegu Óskasteina

Ähnliche Themen

  1. Benutzerkonto wird nicht geladen
    Von Chaka23 im Forum Microsoft Windows
    Antworten: 3
    Letzter Beitrag: 06.01.09, 16:50
  2. GUI wird nicht komplett geladen
    Von Pichel im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 08.07.08, 16:16
  3. MP3 wird nicht geladen
    Von malibubu im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 07.05.05, 14:00
  4. C4D-file wird nicht geladen !
    Von MrBombast im Forum Cinema 4D
    Antworten: 13
    Letzter Beitrag: 11.08.04, 23:43
  5. mysql wird nicht geladen
    Von danube im Forum Hosting & Webserver
    Antworten: 2
    Letzter Beitrag: 11.08.03, 15:36