Java Servlets 404 resource not available

Laci

Java Servlets 404 resource not available
« kdy: 03. 02. 2013, 17:36:30 »
Zdravim, snazim sa naucit JEE a zacal som servletmi podla knihy Head first servlets and jsp.
Pouzivam tomcat 7 server a JRE+JDK 7. Jednoduchy uvodny priklad, ale nemozem dojst na to co je zle.

.../webapps/ch1/web.xml
Kód: [Vybrat]
<?xml version="1.0" encoding="UTF-8"?>   
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
>

  <servlet>
   <servlet-name>Chapter1 Servlet</servlet-name>
   <servlet-class>com.example.Ch1Servlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Chapter1 Servlet</servlet-name>
    <url-pattern>/Serv1</url-pattern>
  </servlet-mapping>

</web-app>

.../webapps/ch1/WEB-INF/classes/com/example/Ch1Servlet.class

Kód: [Vybrat]
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

/**
 * Write a description of class Ch1Servlet here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class Ch1Servlet extends HttpServlet
{
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
                      throws IOException {
                         
        PrintWriter out = response.getWriter();
        Date today = new Date();
        out.println("<html><body><h1 align = center>HF\'s Chapter1 Servler</h1><br>" +
                    today + "</body></html>");
    }
}

do browseru zadavam: http://localhost:8080/ch1/Serv1
-tomcat mam nainst. spravne a funguje
Ak niekto vie poradit, moc mi pomoze :),
chcem sa neco naucit ale nemozem sa dostat dalej a nemam sajnu ako to deploynut.


kvas11

Re:Java Servlets 404 resource not available
« Odpověď #1 kdy: 03. 02. 2013, 20:38:51 »
web.xml musi byt v adresari WEB-INF, ty ho mas o uroven vyssie.

spravna cesta: webapps/ch1/WEB-INF/web.xml

Natix

Re:Java Servlets 404 resource not available
« Odpověď #2 kdy: 03. 02. 2013, 22:03:07 »
A javovské zdrojáky nemají pro změnu co dělat ve WEB-INF, nemluvě o tom, že přípona javovského souboru je .java a ne .class.

Stáhni si NetBeany s podporou JEE:
http://netbeans.org/downloads/index.html

Nejen že ti automaticky vytvoří celou strukturu projektu (myslím že se tenhle typ nazývá "Java Web Application"), ale zároveň v sobě mají i integrovaný server (Tomcat, Glassfish...), na který aplikaci automaticky po každé uložené změně deployují. Dělat tyhle věci ručně je upřímně řečeno masochismus.

Laci

Re:Java Servlets 404 resource not available
« Odpověď #3 kdy: 03. 02. 2013, 22:15:18 »
Teraz takato chyba:
http://imgupload.sk/images/d/p/dpw3a4l16fv6r3lidrys.jpg
No ja som cital, ze tam mam dat uz skompilovane .class subory nie java.
Netbeany stahujem uz, ale islo mi hlavne to skusit najprv aspon sprovoznit, ze nieco funguje :)
a na netbeany si tiez treba zvyknut. V tom netbeans nenainst. to automaticky glassfish? Lebo
JEE mi to chcela nainst. pravdepodobne potom treba nastavit tomcat na iny port.

kvas11

Re:Java Servlets 404 resource not available
« Odpověď #4 kdy: 03. 02. 2013, 22:31:27 »
tato cesta je spravna
/webapps/ch1/WEB-INF/classes/com/example/Ch1Servlet.class
ale musi to byt skompilovana javovska trieda, nie zdrojovy kod:) - to som si ani nevsimol

takze takto:
1) triedu com.example.Ch1Servlet.java - (textovy zdrojovy kod) skompilujes, postup asi v knihe najdes ako na to
2) z kompilacie ti vypadne binarny subor com/example/Ch1Servlet.class a tento potom nakopiruj do /webapps/ch1/WEB-INF/classes/com/example/
3) nastartuj tomcat a malo by ti to fungovat, nic viac nepotrebujes, len web.xml (syntax je OK) a Ch1Servlet.class - samozrejme v spravnych adresaroch

suhlasim ale s natixom, stiahni si nejake IDE napr. spominany Netbeans, alebo Eclipse IDE for Java EE Developers, tam to pojde  rychlejsie/jednoduchsie

p.s. rozumiem, ze si to chces vyskusat nazaciatok "rucne", ale JavaEE je dost komplexna a preto skus to najskor v tom IDE a potom mozes badat na tym "ako to funguje"


Natix

Re:Java Servlets 404 resource not available
« Odpověď #5 kdy: 03. 02. 2013, 22:36:23 »
Kompilovat javovské třídy ručně je jako kopat příkop lžící. Jako jo, jde to, ale nejspíš při tom umřeš vyčerpáním. Tím, že budeš bušit "javac xyz.java" do konzole, kopírovat class soubory sem a tam, balit do to zipu a nahrávat ručně do tomcatu, se principy vývoje JEE aplikací fakt nenaučíš. Proto existují IDE a nástroje, které tenhle infrastrukturní opruz vyřeší za tebe, a ty se můžeš věnovat tomu důležitému.  ;)

Při instalaci se tě NetBeans, zeptají, jestli chceš nainstalovat i Tomcat a GlassFish. Pokud už je někde máš, tak není třeba je instalovat znova. Ony ho NB stejně nainstalují samostatně, jako bys ho stáhl ručně, a jenom si automaticky k němu nastaví cestu. To můžeš jednoduše udělat kdykoliv sám - v levém panelu máš záložky Projects, Files a Services - pod Services je položka Servers, na to klikneš pravým a vybereš Add Server.

Porty neřeš, vždycky ti poběží jenom jeden web server.

Natix

Re:Java Servlets 404 resource not available
« Odpověď #6 kdy: 03. 02. 2013, 22:40:17 »
p.s. rozumiem, ze si to chces vyskusat nazaciatok "rucne", ale JavaEE je dost komplexna a preto skus to najskor v tom IDE a potom mozes badat na tym "ako to funguje"

Přesně tak. To je jako kdybys přišel do autoškoly a tam ti řekli: "Hele mladej, tady máš motor, převodovku, podvozek, karosérii, kola a potřebný nářadí. Až to smontuješ dohromady, tak se budeme učit rozjíždět."  :P

Laci

Re:Java Servlets 404 resource not available
« Odpověď #7 kdy: 03. 02. 2013, 22:46:40 »
Diky moc za rady. Mate pravdu, ale som docela tvrdohlavy a bol som fakt blizko, to chce motivaciu, ze to funguje :D.
V podstate to mam presne podla instrukcii kvas11, ale som cital cosi na nete, ze treba nejak nastavit package kvoli te ceste cez com/example/ tuto http://www.coderanch.com/t/546707/Tomcat/HTTP-status Ja som to nekompiloval priamo z konzole, ale pouzivam docasne BlueJ zo skoly, mal by som sa pomaly posunut na objemnejsie IDE, len sa mi tazsie zvyka, ked tam vyskoci milion okienok, z toho 80% na zaciatok nepotrebujem. Este kedtak skusim poriesit tu chybu a ked nie tak pojdu netbeany, ale v tom sa bojim, ze to ani neskompilujem :D

kvas11

Re:Java Servlets 404 resource not available
« Odpověď #8 kdy: 03. 02. 2013, 22:52:47 »
a mas tam este jednu chybu:
na zaciatok tej triedy pridaj toto:

package com.example;

potom ked to skompilujes, tak uz ti to bude slapat - schalne som to robil rucne:)

kvas11

Re:Java Servlets 404 resource not available
« Odpověď #9 kdy: 03. 02. 2013, 23:01:23 »
Este kedtak skusim poriesit tu chybu a ked nie tak pojdu netbeany, ale v tom sa bojim, ze to ani neskompilujem :D

ale nekecaj:) skus na youtube.com hladat "netbeans servlet tutorial" - su tam toho kvanta, neviem v akej kvalite, ale urcite ti to pomoze

vela zdaru

Laci

Re:Java Servlets 404 resource not available
« Odpověď #10 kdy: 03. 02. 2013, 23:03:56 »
Slape jak hodinky :) problem vyrieseny, thx, jasne mrknem to len teraz chcem skusit este nieco si precitat viac o servletoch.