tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
1005
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Chris2610 Chris2610 ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    15
    Hallo,

    ich hoffe mal, dass ich das richtige Unterforum erwischt habe:

    Ich habe folgendes Problem: Ich habe eine jsp-Seite entwickelt (bzw. die Seite wurde von jemandem entwickelt), in der noch jede Menge "e.printStackTrace()" drin sind. Diese Meldungen sollen durch Log4J in eine Textdatei geschrieben werden.

    Mein Code dazu sieht so aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
        import org.apache.log4j.*;
    private static Logger logger = Logger.getRootLogger();
     
        /**
         * Konstuktor Öffnen der Datenbank verbindung
         */
        public Verbindung()
        {
            try {
                SimpleLayout layout = new SimpleLayout();
                FileAppender fileAppender = new FileAppender(layout, "H:\\logging.log");
                logger.addAppender(fileAppender);
                logger.setLevel(Level.ALL);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            
            logger.info("Meine Info-Meldung");  usw....

    Nun, wenn ich die jsp-Seite aufrufe, steht dort folgendes:

    Error 500: org.apache.log4j.Layout

    Kann damit jemand etwas anfangen, bzw. mir Tipps geben, was ich bei dem Log4J so alles machen muss? Bin leider nicht der fitteste auf dem Gebiet...

    Schöne Grüße
    Chris
     

  2. #2
    Chris2610 Chris2610 ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    15
    Update zu meinem Problem:

    Also: Ich habe jetzt die ganze Zeit hier weiter herumprobiert. Wenn ich alles von dem Log4J-"Gedöns" auskommentiere läuft alles einwandfrei. Sobald ich aber nur schon die Import-Zeile einkommentiere läuft gar nichts mehr, und ich muss sogar den Server neustarten, damit die JSP-Seite wieder einwandfrei läuft.

    Hier sind mal die Fehlermeldungen, die kommen, wenn:

    - ich nur die Zeile "Import..." einkommentiere:

    - auf der JSP-Seite steht das:

    Error 500: class loading constraint violated (class: org/apache/derby/client/am/DatabaseMetaData method: getClientInfoProperties()Lorg/apache/derby/client/am/ResultSet at pc: 0

    - in der Konsole steht das:

    [16.09.08 12:23:48:767 CEST] 00000024 ServletWrappe I SRVE0242I: [KalenderEAR] [/Kalender] [/_sw/Tagesueberblick.jsp]: Initialisierung erfolgreich.
    [16.09.08 12:23:50:380 CEST] 00000024 ServletWrappe E SRVE0068E: Es wurde eine Ausnahme angefangen, die in einer der Servicemethoden des Servlet /_sw/Tagesueberblick.jsp ausgelöst wurde. Ausgelöste Ausnahme: javax.servlet.ServletException: class loading constraint violated (class: org/apache/derby/client/am/DatabaseMetaData method: getClientInfoProperties()Lorg/apache/derby/client/am/ResultSet at pc: 0
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:660)
    at com.ibm._jsp._Tagesueberblick._jspService(_Tagesueberblick.java:131)
    at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
    at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
    at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:11 5)
    at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtension ServletWrapper.java:168)
    at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.handleRequest(AbstractJSPExtensionProce ssor.java:270)
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
    at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
    at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
    at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java :152)
    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
    at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741)
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)
    ---- Begin backtrace for Nested Throwables
    java.lang.VerifyError: class loading constraint violated (class: org/apache/derby/client/am/DatabaseMetaData method: getClientInfoProperties()Lorg/apache/derby/client/am/ResultSet at pc: 0
    at java.lang.J9VMInternals.verifyImpl(Native Method)
    at java.lang.J9VMInternals.verify(J9VMInternals.java:59)
    at java.lang.J9VMInternals.verify(J9VMInternals.java:57)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:120)
    at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl.newNetDatabaseMetaData(Unknown Source)
    at org.apache.derby.client.net.NetConnection.newDatabaseMetaData_(Unknown Source)
    at org.apache.derby.client.am.Connection.completeConnect(Unknown Source)
    at org.apache.derby.client.net.NetConnection.completeConnect(Unknown Source)
    at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
    at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl.newNetConnection(Unknown Source)
    at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:562)
    at java.sql.DriverManager.getConnection(DriverManager.java:186)
    at datenbank.Verbindung.<init>(Verbindung.java:81)
    at datenbank.Abfragen.<init>(Abfragen.java:28)
    at kalender.Kalender.<init>(Kalender.java:52)
    at kalender.Kalender.<init>(Kalender.java:64)
    at kalender.Kalender.<init>(Kalender.java:81)
    at kalender.KalenderBean.<init>(KalenderBean.java:35)
    at com.ibm._jsp._Tagesueberblick._jspService(_Tagesueberblick.java:95)
    at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
    at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
    at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:11 5)
    at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtension ServletWrapper.java:168)
    at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.handleRequest(AbstractJSPExtensionProce ssor.java:270)
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
    at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
    at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
    at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java :152)
    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
    at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741)
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)

    [16.09.08 12:23:50:500 CEST] 00000024 ServiceLogger I com.ibm.ws.ffdc.IncidentStreamImpl initialize FFDC0009I: FFDC hat die Datenstromdatei C:\Program Files\RSA\runtimes\base_v61\profiles\AppSrv01\logs\ffdc\server1_5a125a12_08.09.16_12.23.50_0.txt für das Ereignis geöffnet.
    [16.09.08 12:23:50:510 CEST] 00000024 ServiceLogger I com.ibm.ws.ffdc.IncidentStreamImpl resetIncidentStream FFDC0010I: FFDC hat die Datenstromdatei C:\Program Files\RSA\runtimes\base_v61\profiles\AppSrv01\logs\ffdc\server1_5a125a12_08.09.16_12.23.50_0.txt für das Ereignis geschlossen.
    [16.09.08 12:23:50:510 CEST] 00000024 WebApp E [Servlet Error]-[/_sw/Tagesueberblick.jsp]: java.lang.VerifyError: class loading constraint violated (class: org/apache/derby/client/am/DatabaseMetaData method: getClientInfoProperties()Lorg/apache/derby/client/am/ResultSet at pc: 0
    at java.lang.J9VMInternals.verifyImpl(Native Method)
    at java.lang.J9VMInternals.verify(J9VMInternals.java:59)
    at java.lang.J9VMInternals.verify(J9VMInternals.java:57)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:120)
    at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl.newNetDatabaseMetaData(Unknown Source)
    at org.apache.derby.client.net.NetConnection.newDatabaseMetaData_(Unknown Source)
    at org.apache.derby.client.am.Connection.completeConnect(Unknown Source)
    at org.apache.derby.client.net.NetConnection.completeConnect(Unknown Source)
    at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
    at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl.newNetConnection(Unknown Source)
    at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:562)
    at java.sql.DriverManager.getConnection(DriverManager.java:186)
    at datenbank.Verbindung.<init>(Verbindung.java:81)
    at datenbank.Abfragen.<init>(Abfragen.java:28)
    at kalender.Kalender.<init>(Kalender.java:52)
    at kalender.Kalender.<init>(Kalender.java:64)
    at kalender.Kalender.<init>(Kalender.java:81)
    at kalender.KalenderBean.<init>(KalenderBean.java:35)
    at com.ibm._jsp._Tagesueberblick._jspService(_Tagesueberblick.java:95)
    at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
    at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
    at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:11 5)
    at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtension ServletWrapper.java:168)
    at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.handleRequest(AbstractJSPExtensionProce ssor.java:270)
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
    at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
    at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
    at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java :152)
    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
    at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741)
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)
     

  3. #3
    Avatar von Franz Degenhardt
    Franz Degenhardt Franz Degenhardt ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Köln
    Beiträge
    378
    Dein Snippet geht bei mir. Ich habe folgende Imports verwendet:
    Code :
    1
    2
    3
    4
    
    import org.apache.log4j.FileAppender;
    import org.apache.log4j.Level;
    import org.apache.log4j.Logger;
    import org.apache.log4j.SimpleLayout;

    Dein servletcontainer braucht die log4j.jars (log4j-xxx.jar + evtl commons-logging-api.jar).
    Wenn ein Bekanntmachen der jars nicht reicht, könntest du den zugehörigen Fehler aus dem servletengine-log posten.

    log4j mit Tomcat howto: http://www.laliluna.de/log4j-tutorial_de.html
     
    Denken gefärdet die Gewohnheit

  4. #4
    Chris2610 Chris2610 ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    15
    Danke für Ihre Antowrt.

    Habe jetzt auch einfach nochmal alles von vorher einkommentiert, und in der jsp-Page steht schon wieder das mit "Error 500....".

    Dies ist der Text aus der Konsole:

    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
    101
    102
    103
    104
    
    [16.09.08 12:45:06:370 CEST] 00000024 ServletWrappe I   SRVE0242I: [KalenderEAR] [/Kalender] [/_sw/Tagesueberblick.jsp]: Initialisierung erfolgreich.
    [16.09.08 12:45:06:460 CEST] 00000024 ServletWrappe E   SRVE0068E: Es wurde eine Ausnahme angefangen, die in einer der Servicemethoden des Servlet /_sw/Tagesueberblick.jsp ausgelöst wurde. Ausgelöste Ausnahme: javax.servlet.ServletException: org.apache.log4j.Layout
        at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:660)
        at com.ibm._jsp._Tagesueberblick._jspService(_Tagesueberblick.java:131)
        at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
        at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
        at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:115)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:168)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.handleRequest(AbstractJSPExtensionProcessor.java:270)
        at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
        at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
        at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:274)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
        at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
        at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
        at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
        at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741)
        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)
    ---- Begin backtrace for Nested Throwables
    java.lang.NoClassDefFoundError: org.apache.log4j.Layout
        at java.lang.J9VMInternals.verifyImpl(Native Method)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:59)
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:120)
        at datenbank.Abfragen.<init>(Abfragen.java:28)
        at kalender.Kalender.<init>(Kalender.java:52)
        at kalender.Kalender.<init>(Kalender.java:64)
        at kalender.Kalender.<init>(Kalender.java:81)
        at kalender.KalenderBean.<init>(KalenderBean.java:35)
        at com.ibm._jsp._Tagesueberblick._jspService(_Tagesueberblick.java:95)
        at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
        at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
        at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:115)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:168)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.handleRequest(AbstractJSPExtensionProcessor.java:270)
        at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
        at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
        at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:274)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
        at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
        at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
        at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
        at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741)
        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)
     
    [16.09.08 12:45:06:510 CEST] 00000024 WebApp        E   [Servlet Error]-[/_sw/Tagesueberblick.jsp]: java.lang.NoClassDefFoundError: org.apache.log4j.Layout
        at java.lang.J9VMInternals.verifyImpl(Native Method)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:59)
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:120)
        at datenbank.Abfragen.<init>(Abfragen.java:28)
        at kalender.Kalender.<init>(Kalender.java:52)
        at kalender.Kalender.<init>(Kalender.java:64)
        at kalender.Kalender.<init>(Kalender.java:81)
        at kalender.KalenderBean.<init>(KalenderBean.java:35)
        at com.ibm._jsp._Tagesueberblick._jspService(_Tagesueberblick.java:95)
        at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
        at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
        at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:115)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:168)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.handleRequest(AbstractJSPExtensionProcessor.java:270)
        at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
        at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
        at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:274)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
        at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
        at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
        at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
        at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741)
        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)

    Die Log4J.jar habe ich auch unter BuildPath eingebunden. Muss ich das noch irgendwo/irgendwie machen? Wo bekomme ich die CommonLoggingApi.jar her? Müsste ich die auch so einbinden, wie die Log4J.jar? Wo finde ich das servletengine-log ?

    Sorry für die Fragen, aber habe nicht so viel Ahnung auf dem Gebiet.

    Vielen Dank schonmal und schöne Grüße
     

  5. #5
    Avatar von Franz Degenhardt
    Franz Degenhardt Franz Degenhardt ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Köln
    Beiträge
    378
    Da die erste Exception eine ClassNotFound ist, vermute ich, das log4j.jar ist noch nicht richtig eingebunden. org.apache.log4j.Layout ist aus log4j.jar. Wahrscheinlich reicht es das log4j.jar einzubinden.

    Eine mögliche Position die Tomcat im classpath hat ist TOMCAT_HOME/common/lib

    edit: commons-logging-api ist eine Abstraktionsschicht für log-Implementationen wie log4j. In vielen Programmen wird die commons-logging-api statt der direkten log4j-api verwendet. Für deine logstatements reicht allerdings das log4j.jar.
    Geändert von Franz Degenhardt (16.09.08 um 13:25 Uhr)
     
    Denken gefärdet die Gewohnheit

  6. #6
    Chris2610 Chris2610 ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    15
    Hmm, dabei habe ich sie in meinem Eclipse unter "Build Path" eingebunden (siehe Bild). Habe echt keine Ahnung, was ich wie und wo machen muss, damit dieses Ding läuft :-/

    Muss ich denn auch irgendwo im Eclipse noch eine Variable adden?
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Frage/Problem bei Log4J-log4jjar.jpg  
     

  7. #7
    Avatar von Franz Degenhardt
    Franz Degenhardt Franz Degenhardt ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Köln
    Beiträge
    378
    Es gibt zwar plugins, die eine Menge Tomcat-Konfigurations-Arbeiten übernehmen und deployen, diese habe ich allerdings noch nicht getestet. Im Prinzip hat der buildpath in eclipse nichts mit Tomcat zu tun, wenn du nicht ein plugin hast, was genau die Verbindung herstellt.

    Deswegen würde ich per Hand das log4j.jar in den tomcat classpath bringen, z.B. ins Verzeichniss TOMCAT_HOME/common/lib

    edit: in deinem screenshot könntest du auch im Kartenreiter "Order und Export" das log4j.jar anhaken. Bei einem export zu war würde dann das log4j.jar mitexportiert und als Teil des wars deployed. Sowas würde man aber nicht für Bibliotheken von allgemeinem Interesse wie log4j machen, sondern eher mit anwendungsspezifischen thirdparty-jars.
    Geändert von Franz Degenhardt (16.09.08 um 13:41 Uhr)
     
    Denken gefärdet die Gewohnheit

  8. #8
    Chris2610 Chris2610 ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    15
    Ich fürchte ich muss es aufgeben. - ich bin wohl einfach zu dämlich...

    Ich glaube ich verwende nämlich hier gar nichts mit Tomcat....
    Der Server auf dem das Projekt im Moment läuft ist der WebsphereApplicationServer. Ich wüsste auch gar nicht, wo man für Tomcat (oder sonst wo) diese Classpathes adden kann/muss.
     

  9. #9
    Avatar von Franz Degenhardt
    Franz Degenhardt Franz Degenhardt ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Köln
    Beiträge
    378
    Das klappt schon noch auch mit dem websphere appserver. Dort ist das Laden von Klassen etwas strukturierter und gekapselter.
    Du kannst allerdings einfach das log4j.jar in einen der "lib-paths" legen, die Teil des classpaths sind. Das ist beim appserver z.B. AppServerInstallDir\lib\ext

    Die Informationsquelle zu WebSphere Applikation Server 6.1:
    http://publib.boulder.ibm.com/infoce...v6r1/index.jsp
     
    Denken gefärdet die Gewohnheit

  10. #10
    Chris2610 Chris2610 ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    15
    Danke schön nochmal

    Das macht Mut

    Wo finde ich denn dieses Verzeichnis? "AppServerInstallDir\lib\ext"? In meinem Workspace, oder Projektordner? Keinen blassen Schimmer :-/

    Wäre cool, wenn mir das jemand genau beschreiben könnte.

    Werde mich dann morgen früh wieder melden, da ich jetzt zu einem Termin bin.

    Schöne Grüße und schonmal Danke!
     

  11. #11
    Avatar von Franz Degenhardt
    Franz Degenhardt Franz Degenhardt ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Köln
    Beiträge
    378
    Eclipse und auf Eclipse basierende Toolings haben erstmal nichts mit Server Laufzeitumgebungen zu tun. D.h. die Laufzeitumgebungen wie WebSphere Application Server (kommerziell) oder Tomcat (opensource) müssen seperat verwaltet werden.

    Diverse Plugins und Aufsätze auf Eclipse interagieren auch mit den Laufzeitumgebungen, z.B. deployen, Basisverwaltung dies ist dann aber in der Verantwortlichkeit des Pluginherstellers und ist generell problematisch, wegen vielen Verschiedenen Laufzeitumgebungen und sich ändernden Versionen.

    Was immer geht ist ein seperater Betrieb von Entwicklungswerkzeugen und Laufzeitumgebungen, so sieht es in produktiven Umgebungen eh aus. D.h. entwickeln, dann exportieren, dann auf Server deployen.

    TLDNR:
    Das Verzeichniss für das log4j.ar findest du dort, wo der WebSphere Application Server installiert ist im Dateisystem.

    Quick&Dirty Alternative:
    Deployen aus eclipse scheint ja zu klappen. Teste doch mal den Ansatz von oben:
    In deinem screenshot könntest du auch im Kartenreiter "Order und Export" das log4j.jar anhaken. Bei einem export zu war würde dann das log4j.jar mitexportiert und als Teil des wars deployed. Sowas würde man aber nicht für Bibliotheken von allgemeinem Interesse wie log4j machen, sondern eher mit anwendungsspezifischen jars.
     
    Denken gefärdet die Gewohnheit

  12. #12
    Chris2610 Chris2610 ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    15
    Servus,

    so, habe jetzt über den Server das "Administrative Script" ausgeführt. Dort wollte ich unter Classpath die Log4J.jar einbinden. Na gut, was heißt "wollte". Ich habe sie eingebunden. Wenn ich allerdings das Script wieder verlasse, dann ist die Jar-Datei nicht mehr drin. Was is das denn nu?

    Habe mal den Screenshot vom Administrative Script eingefügt...
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Frage/Problem bei Log4J-serveradministrative.jpg  
     

  13. #13
    Avatar von Franz Degenhardt
    Franz Degenhardt Franz Degenhardt ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Köln
    Beiträge
    378
    Der Screenshot ist aus der scripting-Schnittstelle zum WAS. Alternativ zu der Adminconsole kann man damit über bestehende scripts (Jython, Jacl) den WAS konfigurieren. Der classpath Kartenreiter aus dem screenshot bezieht sich auf die Umgebung des verwendeten Scripts, nicht auf den Server classpath.

    Wie man damit ein Jar einbindet müsste ich nachschlagen.

    Ich gehe davon aus, du verwendest den Websphere Integration Developer (WID). Wesentlich leichter ist dann:
    Im WID in der Server view den Server rechtsklicken, "run adminstrative console" auswählen. Die Adminconsole sollte in einem Browser aufgehen.
    Dort unter "Umgebung" die Option "Gemeinsame Bibliotheken" auswählen.
    Mithilfe von "Neu" die log4j lib anlegen.

    Alternativen:
    Die Anwendung incl. des log4j.jar als Teil des wars deployen s.o.
    Das Jar per Hand in einen lib-Ordner des Servers legen z.B. WAS_ROOT/lib/ext
     
    Denken gefärdet die Gewohnheit

  14. #14
    Chris2610 Chris2610 ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    15
    Guter Tipp

    Ich verwende den RSA, der dürfte ähnlich zu dem von dir beschriebenen Tool sein, denn bei mir gibts die Dinge auch, von denen du gesprochen hast.

    Habe jetzt mal versucht das so anzulegen, allerdings taucht immer noch ein Fehler auf, sobald ich nur die Log4J Sachen im Code importieren will.

    Deshalb vermute ich mal ,dass ich evtl. etwas falsch beim Anlegen der Jar gemacht habe? Habe davon mal einen Screenshot gemacht:
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Frage/Problem bei Log4J-serveradminconsole.jpg  
     

  15. #15
    Avatar von Franz Degenhardt
    Franz Degenhardt Franz Degenhardt ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Köln
    Beiträge
    378
    Ja, RSA und WID haben viel gemeinsam.

    Die Pfadangaben zu deinem Jar dürfen keine Backslashes enthalten, stattdessen den normalen slash "/" verwenden. Pfade dort werden optimalerweise mithilfe von bestehenden Variablen (definiert unter WebSphere-Variables) aufgebaut. z.B. ${WAS_INSTALL_ROOT}/meineLibs/log4j.jar oder
    ${MEINE_LIBS}/log4j.jar
    Die verwendeten Variablen müssen dann noch erzeugt bzw richtig belegt werden (unter WebSphere-Variables) auch dort keine Backslashes verwenden.

    Mit der Variante müssen allerdings alle Server wo die Anwendung laufen soll diese Variablen definieren, im Gegensatz zu der "deploy war incl. jar"-Variante.
     
    Denken gefärdet die Gewohnheit

Ähnliche Themen

  1. Problem mit Log4J
    Von ManuelHegemann im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 01.09.10, 10:23
  2. Frage zu Log4J
    Von Chris2610 im Forum Java
    Antworten: 7
    Letzter Beitrag: 15.04.09, 14:12
  3. Antworten: 8
    Letzter Beitrag: 13.02.09, 08:26
  4. Problem mit log4j
    Von kaMii im Forum Java
    Antworten: 0
    Letzter Beitrag: 21.09.07, 11:09
  5. Log4J-Frage
    Von tklein22000 im Forum Java
    Antworten: 9
    Letzter Beitrag: 07.08.07, 13:37