Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Laci 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
<?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
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.
-
web.xml musi byt v adresari WEB-INF, ty ho mas o uroven vyssie.
spravna cesta: webapps/ch1/WEB-INF/web.xml
-
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.
-
Teraz takato chyba:
http://imgupload.sk/images/d/p/dpw3a4l16fv6r3lidrys.jpg (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.
-
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"
-
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.
-
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
-
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 (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
-
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:)
-
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
-
Slape jak hodinky :) problem vyrieseny, thx, jasne mrknem to len teraz chcem skusit este nieco si precitat viac o servletoch.