---
title: "Strul med servlet på Tomcat"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/111136-strul-med-servlet-på-tomcat"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "AG"
published: "2004-09-08T21:46:33.000Z"
updated: "2004-09-24T14:39:58.000Z"
replies: 13
views: 468
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/111136-strul-med-servlet-på-tomcat"
---

# Strul med servlet på Tomcat

## #1 — AG, 2004-09-08T21:46Z

Installerade Tomcat i dagarna på en äldre maskin för test (Win ME). Då infann sig ett problem jag aldrig råkat ut för tidigare. Att köra servlets från 'ROOT'-katalogen fungerade ej (web-inf/classes). Dock fungerade de servlets som låg i 'example'-katalogen. Någon som kan veta någon anledning?

Andreas

Permalänk: https://www.webforum.nu/p/111136

## #2 — jme, 2004-09-09T08:38Z

Vad får du för felmeddelande? Fungerar web-applikationen om du placerar den i en under-katalog?

Har du kontrollerat att web.xml inte innehåller referenser till servlets som web-applikationen inte använder? (Händer lätt om man kopierar en web-applikation och sedan raderar allt.)

Det finns väl en applikation från början, den som syns om man går till localhost:8080 (ifall du har port 8080).

Kan du inte till början använda den och "tömma" alla de filernas innehåll och ersätta med det som du har?

Permalänk: https://www.webforum.nu/p/1433787

## #3 — AG, 2004-09-10T19:58Z

Gjorde nytt försök och kopierade över hela tomcat-katalogen från annan win me-maskin.
Inte heller nu gick det att köra servlet från ROOT-katalogen.
Mitt felmeddelande:

```
HTTP Status 404 - /servlet/HelloWorld.java

--------------------------------------------------------------------------------

type Status report

message /servlet/HelloWorld.java

description The requested resource (/servlet/HelloWorld.java) is not available.

--------------------------------------------------------------------------------

Apache Tomcat/4.1.24
```

Min web-inf ser ut enligt följande:

```
<?xml version="1.0" encoding="ISO-8859-1"?>

<!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>
  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>

    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

</web-app>
```

Som sagt är det endast servlets som krånglar. Alla jsp-sidor fungerar bra, och omkompileras.
Bifogar min autoexec.bat för säkerhetsskull:

```
SET windir=C:\WINDOWS
SET winbootdir=C:\WINDOWS
SET COMSPEC=C:\WINDOWS\COMMAND.COM
SET CATALINA_HOME=C:\Tomcat
SET JAVA_HOME=C:\j2sdk1.4.2_05
SET PROMPT=$p$g
SET TEMP=C:\WINDOWS\TEMP
SET TMP=C:\WINDOWS\TEMP
SET CLASSPATH=c:\j2sdk1.4.2_05\lib;c:\j2sdk1.4.2_05\bin;C:\Tomcat\bin;c:\j2sdk1.4.2_05;c:\j2sdk1.4.2_05\jre\lib\ext\mysql-connector-java-3.1.3-beta-bin.jar;
SET PATH=C:\Delphi7\Bin;c:\j2sdk1.4.2_05\bin;C:\Delphi;C:\Delphi7\Projects\Bpl\;C:\WINDOWS;C:\WINDOWS\COMMAND;c:\j2sdk1.4.2_05\lib;C:\Program\Mts
```

Andreas

Permalänk: https://www.webforum.nu/p/1434863

## #4 — Viktor, 2004-09-10T23:08Z

Är du säker på att du ska anroppa /servlet/HelloWorld**.java**? Annars brukar det alltis vara /servlet/HelloWorld.

/Viktor

Permalänk: https://www.webforum.nu/p/1434979

## #5 — AG, 2004-09-10T23:13Z

Även testat utan. Går inte att kompilera om en servlet verkar det som. Endast redan kompilerade går att köra. Fick upp något fel Catalina.invoker, något i den stilen.

Andreas

Permalänk: https://www.webforum.nu/p/1434981

## #6 — sgtpepper, 2004-09-11T00:21Z

Från och med Java 1.4.nånting så tillåter inte längre kompilatorn access till klasser i defaultpaketet, det kan vara det som strular kanske.

Frågan är varför du vill köra i defaultpaketet? Det finns ingen som helst vits med det, försök istället att altid placera klasser i ordentligt namngivna paket.

Permalänk: https://www.webforum.nu/p/1435002

## #7 — jme, 2004-09-11T05:35Z

Du har bara en \<servlet-mapping\> 
Du ska nog också ha en:

  \<servlet\>
    \<servlet-name\>invoker\</servlet-name\>
    \<servlet-class\>invoker\</servlet-class\>
  \</servlet\>

Är du säker på att namnet på klassen börjar med ett litet i? :)

man ska inte anropa klassen med prefixen .java eller .class

Permalänk: https://www.webforum.nu/p/1435033

## #8 — AG, 2004-09-11T15:15Z

Adderat det du nämner jme i min web.xml, men vad menar du med litet "i"?

Nedan följer felet jag får när jag adderat det du nämner ovan:

```
2004-09-11 17:07:10 WebappLoader[/foo]: Deploying class repositories to work directory C:\Tomcat\work\Standalone\localhost\foo
2004-09-11 17:07:10 WebappLoader[/foo]: Deploy class files /WEB-INF/classes to C:\Tomcat\webapps\foo\WEB-INF\classes
2004-09-11 17:07:10 WebappLoader[/foo]: Reloading checks are enabled for this Context
2004-09-11 17:07:10 ContextConfig[/foo] Parse error in application web.xml
java.lang.IllegalArgumentException: addChild:  Child name 'invoker' is not unique
	at org.apache.commons.digester.Digester.createSAXException(Digester.java:2383)
	at org.apache.commons.digester.Digester.createSAXException(Digester.java:2409)
	at org.apache.commons.digester.Digester.endElement(Digester.java:1067)
	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
	at org.apache.xerces.impl.dtd.XMLDTDValidator.endNamespaceScope(Unknown Source)
	at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
	at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
	at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.commons.digester.Digester.parse(Digester.java:1543)
	at org.apache.catalina.startup.ContextConfig.applicationConfig(ContextConfig.java:282)
	at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:639)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:243)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:3567)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
	at org.apache.catalina.core.StandardService.start(StandardService.java:497)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
	at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
	at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

2004-09-11 17:07:10 ContextConfig[/foo]: Occurred at line 15 column 11
2004-09-11 17:07:10 ContextConfig[/foo]: Marking this application unavailable due to previous error(s)
2004-09-11 17:07:10 StandardManager[/foo]: Seeding random number generator class java.security.SecureRandom
2004-09-11 17:07:10 StandardManager[/foo]: Seeding of random number generator has been completed
2004-09-11 17:07:10 StandardContext[/foo]: Context startup failed due to previous errors
2004-09-11 17:07:10 WebappLoader[/webdav]: Deploying class repositories to work directory C:\Tomcat\work\Standalone\localhost\webdav
2004-09-11 17:07:11 StandardManager[/webdav]: Seeding random number generator class java.security.SecureRandom
2004-09-11 17:07:11 StandardManager[/webdav]: Seeding of random number generator has been completed
2004-09-11 17:07:11 StandardWrapper[/webdav:default]: Loading container servlet default
2004-09-11 17:07:11 StandardWrapper[/webdav:invoker]: Loading container servlet invoker
2004-09-11 17:07:12 WebappLoader[/tomcat-docs]: Deploying class repositories to work directory C:\Tomcat\work\Standalone\localhost\tomcat-docs
2004-09-11 17:07:12 StandardManager[/tomcat-docs]: Seeding random number generator class java.security.SecureRandom
2004-09-11 17:07:12 StandardManager[/tomcat-docs]: Seeding of random number generator has been completed
2004-09-11 17:07:12 StandardWrapper[/tomcat-docs:default]: Loading container servlet default
2004-09-11 17:07:12 StandardWrapper[/tomcat-docs:invoker]: Loading container servlet invoker
2004-09-11 17:07:12 WebappLoader[/manager]: Deploying class repositories to work directory C:\Tomcat\work\Standalone\localhost\manager
2004-09-11 17:07:12 ContextConfig[/manager]: Configured an authenticator for method BASIC
2004-09-11 17:07:12 StandardManager[/manager]: Seeding random number generator class java.security.SecureRandom
2004-09-11 17:07:12 StandardManager[/manager]: Seeding of random number generator has been completed
2004-09-11 17:07:12 StandardWrapper[/manager:default]: Loading container servlet default
2004-09-11 17:07:12 StandardWrapper[/manager:invoker]: Loading container servlet invoker
2004-09-11 17:07:12 WebappLoader[]: Deploying class repositories to work directory C:\Tomcat\work\Standalone\localhost\_
2004-09-11 17:07:12 WebappLoader[]: Deploy class files /WEB-INF/classes to C:\Tomcat\webapps\ROOT\WEB-INF\classes
2004-09-11 17:07:13 StandardManager[]: Seeding random number generator class java.security.SecureRandom
2004-09-11 17:07:13 StandardManager[]: Seeding of random number generator has been completed
2004-09-11 17:07:13 StandardWrapper[:default]: Loading container servlet default
2004-09-11 17:07:13 StandardWrapper[:invoker]: Loading container servlet invoker
```

sgtpepper jag har lagt filen i katalog
web-inf -\> classes -\> test

tack
Andreas

Permalänk: https://www.webforum.nu/p/1435174

## #9 — AG, 2004-09-11T15:32Z

Bifogar min globala web.xml, dvs den som ligger i katalogen /conf

tack
Andreas

Bilagor:

- [web.xml](https://www.webforum.nu/a/4535.xml)

Permalänk: https://www.webforum.nu/p/1435182

## #10 — Stojjan, 2004-09-12T21:54Z

Vet inte vad du kör för Tomcat version, men dom här grejorna har jag som jag inte kunde hitta i din autoexec

install_dir\\common\\lib\\servlet.jar;install_dir\\common\\lib\\servlet-api.jar;install_dir\\common\\lib\\jsp-api.jar;.;..;..\\..

Permalänk: https://www.webforum.nu/p/1435899

## #11 — Stojjan, 2004-09-12T22:09Z

Förresten..har du mixtrat med rätt web.xml...finns ju några att välja på. Den du ska grejja i ligger i \\ROOT\\WEB-INF

Edit.. Tydligen har du inte det ;)

Kommentar ur din fil:

```
- <!--  WARNING:  Do not configure application-specific resources here!   --> 
- <!--  They should go in the "/WEB-INF/web.xml" file in your application.   -->
```

Permalänk: https://www.webforum.nu/p/1435901

## #12 — AG, 2004-09-13T16:08Z

Stojjan som jag skrev är detta min globala web.xml fil den som ligger i /conf.
Dvs där i adderar man ny context apth etc. De ändringar som jme beskriv ligger i web.xml i katalogen foo/web-inf/

tack
Andreas

Permalänk: https://www.webforum.nu/p/1436192

## #13 — Lime, 2004-09-16T11:24Z

\*Äh... glöm det...\*

Meddelandet raderat.

Permalänk: https://www.webforum.nu/p/1440679

## #14 — AG, 2004-09-24T14:39Z

Nu fungerar det att kompilera om jag står i prompten och skriver: 'javac MinServlet.java'. Dock när jag körde Resin lät sig en okompilerad servlet kompilera sig genom att endast anropa filen, ungefär: 'http://172.0.0.1:8080/servlet/MinServlet' nu är frågan varför det ej fungerar i Tomcat.

tack
Andreas

Permalänk: https://www.webforum.nu/p/1444533

---

Tråden på webben: https://www.webforum.nu/amne/java/111136-strul-med-servlet-på-tomcat
