AGMedlem sedan mars 20001 229 inlägg 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
jmeMedlem sedan maj 20011 967 inlägg 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?
AGMedlem sedan mars 20001 229 inlägg 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
ViktorMedlem sedan aug. 20021 710 inlägg Är du säker på att du ska anroppa /servlet/HelloWorld**.java**? Annars brukar det alltis vara /servlet/HelloWorld.
/Viktor
AGMedlem sedan mars 20001 229 inlägg Ä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
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.
jmeMedlem sedan maj 20011 967 inlägg 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
AGMedlem sedan mars 20001 229 inlägg 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
AGMedlem sedan mars 20001 229 inlägg Bifogar min globala web.xml, dvs den som ligger i katalogen /conf
tack
Andreas
StojjanMedlem sedan maj 200484 inlägg 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;.;..;..\..
StojjanMedlem sedan maj 200484 inlägg 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. -->
AGMedlem sedan mars 20001 229 inlägg 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
AGMedlem sedan mars 20001 229 inlägg 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