Gå til innhold

java servlet testing


Anbefalte innlegg

Hei.

Jeg prøver å lære meg servlets, og tenkte først og fremst å få serveren Tomcat 5.5 opp å få, for så å teste med en hello world applikasjon. Dette funker (av og til) første gangen jeg oppretter ny mappe i webapps-mappa, men hvis jeg prøver å videreutvikle java-fila litt, og kompilerer på ny får jeg ikkje kjørt applikasjonen på ny.

 

Mitt spørsmål er: hva er et must å ha i web.xml-fila, og hva er den vanligste måten å utvikle servlets på. Texteditor, kompilering, og hente i adresselinja i en browser ville jeg trodd, men som sagt virker det ikke når jeg prøver å jobbe med fila.

 

Noen som har vært borti dette? Har brukt lang tid på å finne feilen, men på nettet finner jeg bare hvor enkelt det skal være ;)

Lenke til kommentar
Videoannonse
Annonse
Hei.

Jeg prøver å lære meg servlets, og tenkte først og fremst å få serveren Tomcat 5.5 opp å få, for så å teste med en hello world applikasjon. Dette funker (av og til) første gangen jeg oppretter ny mappe i webapps-mappa, men hvis jeg prøver å videreutvikle java-fila litt, og kompilerer på ny får jeg ikkje kjørt applikasjonen på ny.

 

Mitt spørsmål er: hva er et must å ha i web.xml-fila, og hva er den vanligste måten å utvikle servlets på. Texteditor, kompilering, og hente i adresselinja i en browser ville jeg trodd, men som sagt virker det ikke når jeg prøver å jobbe med fila.

 

Noen som har vært borti dette? Har brukt lang tid på å finne feilen, men på nettet finner jeg bare hvor enkelt det skal være  ;)

Selv følger jeg følgende "steg" når jeg lager servlets:

 

1. Opprett en Servlet som er en del av en pakke. Hvis nettsiden er. minside.no, kan du opprette en pakke som f.eks. heter no.minside.servlets eller liknende.

2. Lag servleten, extend fra HttpServlet eller fra GenericServlet, f.eks. no.minside.servlets.ControllerServlet

3. Definer servleten i web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

   <servlet>
     <servlet-name>ControllerServlet</servlet-name>
     <description>
       Controller Servlet controls the flow of the pages from index.jsp
     </description>
     <servlet-class>no.minside.servlets.ControllerServlet</servlet-class>
   </servlet>

   <servlet-mapping>
       <servlet-name>ControllerServlet</servlet-name>
       <url-pattern>/ControllerServlet</url-pattern>
   </servlet-mapping>

</web-app>

 

Deretter kan du kalle servletten fra nettleseren: http://localhost:8080/minside/ControllerServlet, eller hvis du har satt opp en host i server.xml for minside.no http://www.minside.no/ControllerServlet.

 

Du kan selvfølgelig også benytte deg av et API, men jeg liker å gjøre slike ting mer eller mindre manuelt :)

Lenke til kommentar

Det er ikke slik at du må "reloade" webapplikasjonen etter du har gjort endringer slik at webserveren kjører de oppdaterte filene? Jeg måtte ihvertfall det på tidligere versjoner av Tomcat. Eventuelt starte webserveren på ny, men det er jo litt mer stress :) Husker ikke nøyaktig hvordan jeg fikk opp den sida med alle applikasjoner som kjøres på webserveren (sitter på jobb og får ikke sjekka). Her kan du også deployere og fjerne webapplikasjoner. Merk: Den Undeploy (fjern)-greia er skummel da den fjerner alle filene i applikasjonen. Har selv mista en del arbeid på den måten :whistle:

Lenke til kommentar
Det er ikke slik at du må "reloade" webapplikasjonen etter du har gjort endringer slik at webserveren kjører de oppdaterte filene? Jeg måtte ihvertfall det på tidligere versjoner av Tomcat. Eventuelt starte webserveren på ny, men det er jo litt mer stress :) Husker ikke nøyaktig hvordan jeg fikk opp den sida med alle applikasjoner som kjøres på webserveren (sitter på jobb og får ikke sjekka). Her kan du også deployere og fjerne webapplikasjoner. Merk: Den Undeploy (fjern)-greia er skummel da den fjerner alle filene i applikasjonen. Har selv mista en del arbeid på den måten :whistle:

Det stemmer. Når du endrer web.xml må du starte om konteksten. Endrer du server.xml må du starte om appserveren.

 

For å reloade konteksten kan du bruke tomcats manager localhost:8080/manager/html, logge deg inn og klikke på "reload" ved konteksten di vil starte om. Alternativt kan du i server.xml opprette et kontekst og sette reloadable=true så starer tomcat om ved endringer i WEB-INF. Du kan også alternativt stoppe og starte tomcat, men det er litt "overkill" i denne sammenhengen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...