abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 19:11 | Nová verze

    Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 1
    včera 04:11 | Nová verze

    Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    9.5. 22:22 | Bezpečnostní upozornění

    Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].

    Ladislav Hagara | Komentářů: 13
    9.5. 21:11 | Zajímavý článek

    V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.

    Ladislav Hagara | Komentářů: 29
    9.5. 14:33 | Pozvánky

    O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    8.5. 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 19
    8.5. 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 6
    8.5. 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    7.5. 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

    Ladislav Hagara | Komentářů: 7
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (8%)
     (14%)
     (16%)
    Celkem 153 hlasů
     Komentářů: 11, poslední včera 18:00
    Rozcestník

    Dotaz: Rozjeti prvni servletove aplikace

    22.9.2009 10:42 Maartin
    Rozjeti prvni servletove aplikace
    Přečteno: 338×

    Dobry den, postupuji podle tohoto navodu:

    http://www.linuxzone.cz/index.phtml?ids=2&idc=179

    a chci tu aplikaci zprovoznit. Do slozky webapps jsem nahral adresar test s timto obsahem:

    test/
    `-- WEB-INF
        |-- classes
        |   `-- DatumServlet.java
        `-- web.xml
    

    Pokud vsak zadam do prohlizece http://localhost:8080/test/servlet/Datum objevi se chybove hlaseni HTTP Status 500 s timto textem:

    exception
    
    javax.servlet.ServletException: Wrapper cannot find servlet class DatumServlet or a class it depends on
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
    	org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    	java.lang.Thread.run(Thread.java:619)
    
    root cause
    
    java.lang.ClassNotFoundException: DatumServlet
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386)
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
    	org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    	java.lang.Thread.run(Thread.java:619)
    

    Co mi jeste taky neni jasne, proc kdyz v prohlizeci potom zmacnu F5, tak dostanu error 404 a chybovou hlasku vyse uvidim znovu pouze az restartuji tomcat - cim to je?

    Odpovědi

    22.9.2009 11:26 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Rozjeti prvni servletove aplikace
    Možná by to chtělo zkompilovat. DatumServlet.java je jen zdroják, tipuji, že by tam místo něj měl být .class soubor (nebo jak se jmenují). Ale v Javě nedělám.
    22.9.2009 11:39 Maartin
    Rozbalit Rozbalit vše Re: Rozjeti prvni servletove aplikace

    Ano, asi mate pravdu, ono je to vlastne i v tom navodu. Jenze kdyz chci soubor zkompilovat:

    $ javac DatumServlet.java
    DatumServlet.java:1: package javax.servlet does not exist
    import javax.servlet.*;
    ^
    DatumServlet.java:2: package javax.servlet.http does not exist
    import javax.servlet.http.*;
    ^
    DatumServlet.java:5: cannot find symbol
    symbol: class HttpServlet
    public class DatumServlet extends HttpServlet {
                                      ^
    DatumServlet.java:8: cannot find symbol
    symbol  : class ServletConfig
    location: class DatumServlet
        public void init(ServletConfig config)
                         ^
    DatumServlet.java:9: cannot find symbol
    symbol  : class ServletException
    location: class DatumServlet
        throws ServletException {
               ^
    DatumServlet.java:19: cannot find symbol
    symbol  : class HttpServletRequest
    location: class DatumServlet
        protected void doGet(HttpServletRequest req,
                             ^
    DatumServlet.java:20: cannot find symbol
    symbol  : class HttpServletResponse
    location: class DatumServlet
        HttpServletResponse res)
        ^
    DatumServlet.java:21: cannot find symbol
    symbol  : class ServletException
    location: class DatumServlet
        throws ServletException, java.io.IOException {
               ^
    DatumServlet.java:26: cannot find symbol
    symbol  : class HttpServletRequest
    location: class DatumServlet
        protected void doPost(HttpServletRequest req,
                              ^
    DatumServlet.java:27: cannot find symbol
    symbol  : class HttpServletResponse
    location: class DatumServlet
        HttpServletResponse res)
        ^
    DatumServlet.java:28: cannot find symbol
    symbol  : class ServletException
    location: class DatumServlet
        throws ServletException, java.io.IOException {
               ^
    DatumServlet.java:33: cannot find symbol
    symbol  : class HttpServletRequest
    location: class DatumServlet
        protected void processRequest(HttpServletRequest req,
                                      ^
    DatumServlet.java:34: cannot find symbol
    symbol  : class HttpServletResponse
    location: class DatumServlet
        HttpServletResponse res)
        ^
    DatumServlet.java:35: cannot find symbol
    symbol  : class ServletException
    location: class DatumServlet
        throws ServletException, java.io.IOException {
               ^
    DatumServlet.java:10: cannot find symbol
    symbol  : variable super
    location: class DatumServlet
            super.init(config);
            ^
    15 errors
    

    Nemuze najit javax.servlet. Ok, tedy. Zjistil jsem, ze tato trida se nachazi zde: /opt/tomcat/common/libs/servlet/servlet-api.jar. Zkusil jsem tedy soubor prelozit se zadanym classpatch takto:

    javac -cp /opt/tomcat/common/lib DatumServlet.java

    Ale vybafla na me presne ta stejna chyba...

    22.9.2009 11:43 Maartin
    Rozbalit Rozbalit vše Re: Rozjeti prvni servletove aplikace

    Tak vyreseno, do classpath je nedava adresar, ale primo cesta k danemu jaru

    javac -cp /opt/tomcat/common/lib/servlet-api.jar DatumServlet.java
    22.9.2009 11:46 Maartin
    Rozbalit Rozbalit vše Re: Rozjeti prvni servletove aplikace

    Ale jeste bych mel jeden dotaz. Jak udelat, abych po zmene servletu (editace zdrojaku a jeho opetovna komilace) nemusel vzdy restartovat cely Tomcat kvuli tomu, aby se zmena projevila.

    22.9.2009 12:02 dark
    Rozbalit Rozbalit vše Re: Rozjeti prvni servletove aplikace

    Ahoj,

    zkoušels použít maven? Ze začátku to může být opruz, ale je schopný ti stáhnout všechny závisloti a netbeans s ním umí přimo pracovat. Bez restartu tomcatu nevim jestli to půjde, někteří na to používají jetty, ale ten to taky myslím neumí (když změníš třídu). Já používám na vývoj glassfish.

    22.9.2009 12:13 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Rozjeti prvni servletove aplikace
    Pocas vyvoja deployovat aplikaciu v expanded forme a v konfiguracii tomcatu zapnut autoRedeploy; ale to urcite najdes v dokumetacii tomcatu, ze ano.
    23.9.2009 15:54 Maartin
    Rozbalit Rozbalit vše Re: Rozjeti prvni servletove aplikace

    To bude snad to co potrebuji.

    1) Expanded forma - tim je myslena aplikace co neni zabalena do war archivu?

    2) Muzete me prosim odkazat do dokumentace, kde se resi autoRedeploy, nejak to tam nemuzu najit.

    finc avatar 23.9.2009 16:32 finc | skóre: 8 | blog: Finc | Kolín
    Rozbalit Rozbalit vše Re: Rozjeti prvni servletove aplikace
    No, pokud je to mala aplikace, tak automaticky redeploy te tolik obtezovat nebude.

    Pokud ovsem aplikace zacne narustat a deploy se zacne prodluzovat (deploy meho systemu na glassfish trva cca 1 minutu), tak se musis poohlednout po necem sofistikovanejsim.

    Osobne pouzivam JavaRebel, ktery umi udelat tzv. hotswap. Tedy na aplikacnim serveru je jakysi listener, ktery provadi zmenu primo na classloaderu za behu. Pri zmene nejakeho *.java souboru, dam zkompilovat samotny soubor a hned vidim zmenu na serveru.

    Ovsem i tento zpusob ma sva omezeni (viz napr. nova trida, atd.). Ale pro zmenu implementaci metod je ten nastroj k nezaplaceni.
    Kdo Vam dal pravo ty lidi urazet? A kdo ti dal pravo cumet z okna, ty kr.vo!
    default avatar 22.9.2009 19:48 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Rozjeti prvni servletove aplikace

    Jen taková poznámka: Default Package byl deprekován někdy v dobách Java SE 2. Vše by mělo být v balíčcích. Class Loadeři mívají s default packagem občas problém.

    23.9.2009 21:52 init_daemon
    Rozbalit Rozbalit vše Re: Rozjeti prvni servletove aplikace
    Na servlety sa vykasli. To je styl davno minuly :-D

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.