Avatar billede anders_stigaard Nybegynder
26. april 2006 - 14:42 Der er 11 kommentarer og
2 løsninger

Servlet med packages >Tomcat 5.0.28

Jeg har problemer med at få min servlet til at virke..

jeg følger dette eksempel:

http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/

dvs. jeg har:

-Webapps
--hall
---WEB-INF
----classes
----- Mine .java og .class filer
--- Min .html fil

og i min web.xml:

<servlet>
    <servlet-name>minservlet</servlet-name>
    <servlet-class>VisParametere</servlet-class>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>minservlet</servlet-name>
    <url-pattern>/servlet/VisParametere</url-pattern>
  </servlet-mapping>
>
   


Men jeg er næsten sikker på problet i det hele ligge i at jeg har en package hall som man også kan se ud fra Tutorialen.. Da naar han linker til en servlet gør han således:

/localhost/package-navn."servlet navn"

Jeg kan nemt åbne PostForm.html men lige meget hvordan jeg skriver "stien" til min servlet vil den ikke vises! (se Tutorial)
Avatar billede arne_v Ekspert
26. april 2006 - 15:27 #1
med den web.xml maa du skulle bruge

/hall/servlet/VisParametere
Avatar billede arne_v Ekspert
26. april 2006 - 15:27 #2
altsaa i action attribut
Avatar billede anders_stigaard Nybegynder
26. april 2006 - 15:51 #3
Det hjælper ikke! Jeg har lavet en test med en mere simpel kode, for at være sikker på det var package der var problemet. (jeg får samme fejl, men viker hvis jeg laver .java og class filen uden packageen hall)

-test
--WEB-INF
---classes
----HelloWorld.java
----HelloWorld.class
---web.xml

HelloWorld.java :

package hall;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorld extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("Hello World");
  }
}

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>minservlet</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>minservlet</servlet-name>
    <url-pattern>/hall/servlet/HelloWorld</url-pattern>
  </servlet-mapping>
</web-app>

//også prøvet med <url-pattern>/hall/servlet/HelloWorld</url-pattern>  virker heller ikke!

Har brug for hjælp :)!

ER online igen i morgen fra kl 8.00!
Avatar billede arne_v Ekspert
26. april 2006 - 15:55 #4
kode
----

package hall;

public class HelloWorld extends HttpServlet {

web.xml
-------


  <servlet>
    <servlet-name>minservlet</servlet-name>
    <servlet-class>hall.HelloWorld</servlet-class>
  </servlet>

URL
---

/hall/servlet/HelloWorld

  <servlet-mapping>
    <servlet-name>minservlet</servlet-name>
    <url-pattern>/servlet/HelloWorld</url-pattern>
  </servlet-mapping>
Avatar billede anders_stigaard Nybegynder
26. april 2006 - 15:55 #5
skriver dette i browseren:

http://localhost:8080/test/servlet/HelloWorld

får fejlene:

description: The server encountered an internal error () that prevented it from fulfilling this request

exception

javax.servlet.ServletException: Error allocating a servlet instance



root cause

java.lang.NoClassDefFoundError: HelloWorld (wrong name: hall/HelloWorld)


med: http://localhost:8080/servlet/HelloWorld

skriver den bare som den ik kan finde den (logisk nok!):

type Status report

message /servlet/HelloWorld

description The requested resource (/servlet/HelloWorld) is not available.
Avatar billede arne_v Ekspert
26. april 2006 - 15:55 #6
kode
----

package hall;

public class HelloWorld extends HttpServlet {

web.xml
-------


  <servlet>
    <servlet-name>minservlet</servlet-name>
    <servlet-class>hall.HelloWorld</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>minservlet</servlet-name>
    <url-pattern>/servlet/HelloWorld</url-pattern>
  </servlet-mapping>

URL
---

/hall/servlet/HelloWorld
Avatar billede arne_v Ekspert
26. april 2006 - 15:56 #7
/hall/servlet/HelloWorld gaar til web app hall

web.xml mapper /servlet/HelloWorld til klassen hall.HelloWorld
Avatar billede anders_stigaard Nybegynder
27. april 2006 - 08:10 #8
Kan ikke få det til at virke! Hvad er det du mener jeg skal skrive efter:

http://localhost:8080/

Jeg syntes næsten jeg har prøvet alle muligheder! og jeg får bare:

description The requested resource (/hall/servlet/HelloWorld) is not available.
description The requested resource (/servlet/HelloWorld) is not available.
Avatar billede anders_stigaard Nybegynder
27. april 2006 - 08:18 #9
Har ændret det til dette i min 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>minservlet</servlet-name>
    <servlet-class>hall.HelloWorld</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>minservlet</servlet-name>
    <url-pattern>/servlet/HelloWorld</url-pattern>
  </servlet-mapping>
</web-app>
Avatar billede anders_stigaard Nybegynder
27. april 2006 - 08:32 #10
Hmm hvis jeg skriver: (Min webapp ligger jo i mappen test)

http://localhost:8080/test/servlet/HelloWorld

type Status report

message Servlet minservlet is not available

description The requested resource (Servlet minservlet is not available) is not available.

DEt ser der ud til at den da i det mindste læser fra min web.xml fil da den finder ud af den hedder minservlet..
Avatar billede anders_stigaard Nybegynder
27. april 2006 - 10:05 #11
Mit problem er nu løst...

Jeg kiggede i log filen og fandt denne besked i de flere 100 linjer :D

hall.HelloWorld
java.lang.ClassNotFoundException: hall.HelloWorld

Så kom jeg i tanke om jeg på et random forum læse noget med at mappen classes skal inde holde en mappe med navnet på package, som så skal indeholde .class og .java filerne..

Så altså:

-Webapps
--test
---WEB-INF
----classes
-----hall (min package)
------ Mine .java og .class filer
----web.xml

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>minservlet</servlet-name>
    <servlet-class>hall.HelloWorld</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>minservlet</servlet-name>
    <url-pattern>/servlet/HelloWorld</url-pattern>
  </servlet-mapping>
</web-app>

(tak til arne v, ved at være nogen gange du har hjulpet mig her inde)

http://localhost:8080/test/servlet/HelloWorld

//stii
Avatar billede anders_stigaard Nybegynder
27. april 2006 - 10:23 #12
Hvis du vil have point så smid et svar arne :)!
Avatar billede arne_v Ekspert
27. april 2006 - 13:05 #13
det er rigtigt

har du læst http://www.eksperten.dk/artikler/28 ?

og svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester