Avatar billede pellekahn Nybegynder
11. november 2003 - 15:54 Der er 11 kommentarer og
1 løsning

Servlet placering i Tomcat

Hvordan afvikles en servlet i Tomcat version 4.1.29? Skal classfilen placeres i en bestemt mappe? Vi kører lokalt på en standalone, hvis det har betydning.
Avatar billede arne_v Ekspert
11. november 2003 - 16:08 #1
Ja

webapps\minapplikation\classes\minpakke\MinServlet.class

(og mapning i web.xml medmindre du vil fuske med default invoker)
Avatar billede pellekahn Nybegynder
11. november 2003 - 16:36 #2
Vores servlet ligger her:
C:\Tomcat\webapps\Pro_serv\classes\TestServer.class
Vi skriver dette for at køre den: http://localhost:8089/pro_serv/classes/TestServer
og får fejlen:

HTTP Status 404 - /pro_serv/classes/TestServer
type Status report
message /pro_serv/classes/TestServer
description The requested resource (/pro_serv/classes/TestServer) is not available.

Kører vi den fra denne sti: C:\Tomcat\webapps\examples\WEB-INF\classes med denne URL: http://localhost:8089/examples/servlet/TestServer - så virker den fint. HVORFOR...?
Avatar billede arne_v Ekspert
11. november 2003 - 16:41 #3
Sti:

C:\Tomcat\webapps\Pro_serv\classes\TestServer.class

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>TestServer</servlet-name>
    <servlet-class>TestServer</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestServer</servlet-name>
    <url-pattern>/TestServer</url-pattern>
  </servlet-mapping>
</web-app>

URL:

http://localhost:8089/Pro_serv/TestServer

skal virke !
Avatar billede arne_v Ekspert
11. november 2003 - 16:42 #4
Den anden med servlet i sti kræver noget fusk med defualt invoker.

Jeg vil klart anbefale den anden metode jeg har beskrevet.
Avatar billede arne_v Ekspert
11. november 2003 - 16:45 #5
Hvis I ligger dette her ind i web.xml:

      <servlet>
        <servlet-name>testinvoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>testinvoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

så vil URL:

http://localhost:8089/Pro_serv/servlet/HvadSomHelst

køre:

C:\Tomcat\webapps\Pro_serv\classes\HvadSomHelst.class
Avatar billede arne_v Ekspert
11. november 2003 - 16:46 #6
Men jeg vil som sagt anbefale at ligge servlets ind eksplicit.
Avatar billede pellekahn Nybegynder
11. november 2003 - 16:56 #7
Skal jeg forstå det som, web.xml skal placeres i samme mappe som servletten? Jeg får stadig samme fejl når jeg prøver at køre den...
Avatar billede arne_v Ekspert
11. november 2003 - 16:58 #8
Nej den skal ligge som:

C:\Tomcat\webapps\Pro_serv\WEB-INF\web.xml
Avatar billede arne_v Ekspert
11. november 2003 - 16:59 #9
Upsss.................

C:\Tomcat\webapps\Pro_serv\classes\

skal være:

C:\Tomcat\webapps\Pro_serv\WEB-INF\classes\

hele vejen igennem !

Sorry - jeg snorksov.
Avatar billede pellekahn Nybegynder
11. november 2003 - 17:08 #10
OK,nu ligger servletten i 'C:\Tomcat\webapps\Pro_serv\WEB-INF\classes', og web.xml ligger i 'C:\Tomcat\webapps\Pro_serv\WEB-INF'. Så det skulle vist være på plads :) Men web.xml skal se hvordan ud?!? Forstår ikke lige hvad du mente med dit andet eksempel...
Avatar billede arne_v Ekspert
11. november 2003 - 17:27 #11
Mit andet eksempel er bare:

<?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>testinvoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>testinvoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

</web-app>
Avatar billede pellekahn Nybegynder
11. november 2003 - 18:05 #12
OK. Takker Arne v!
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