AGMedlem sedan mars 20001 229 inlägg Har precis installerat Tomcat 5,5 på en Win XP maskin med JDK5.
Dock har jag några frågor, mest allmänt med installation på XP.
1. I xp hur lägger jag till kataloger till classpath, så jag kan kömpiliera filer.
2. Om jag skall installera mysql driver i java, skall jag bara lägga den i bin, eller måsta jag här peka om i classpath?
tack
Andreas
JonMedlem sedan juli 20011 126 inlägg jmeMedlem sedan maj 20011 967 inlägg control panel:System(?) och sedan väljer du "environment variables"
1.
I den undre delen lägger du till CLASSPATH och sedan sökvägarna till katalogerna, saparerade med ; glöm inte att lägga till .; som hänvisar till nuvarande katalog.
2. För att Tomcat skall hitta MySQl drivern, så lägg den i Tomcat/common/lib
För att själv kunna kompilera kod, där du använder dig utav drivern, så lägger du till samma sökväg till CLASSPATH.
Glöm inte att lägga till sökvägen för javac.exe och java.exe, denna gång i PATH. T ex c:\path_to_java\bin
Lägg till sökvägen c:\path_to_java\lib i CLASSPATH.
spangoMedlem sedan juni 20006 147 inlägg
jme skrev:
2. För att Tomcat skall hitta MySQl drivern, så lägg den i Tomcat/common/lib
För att själv kunna kompilera kod, där du använder dig utav drivern, så lägger du till samma sökväg till CLASSPATH.
Värt att notera är att drivern normalt inte behöver finnas i classpathen när man kompilerar, bara när man kör, eftersom man oftast laddar klassen dynamiskt (med Class.forName) och sedan bara refererar till den via interfaces i java(x).sql :)
jmeMedlem sedan maj 20011 967 inlägg Men för att kompileraren ska hitta klassen, så måste den väl ha en sökväg?
AGMedlem sedan mars 20001 229 inlägg Får tyvärr fel när jag försöker kompilera ett enkelt HelloWorld-program, "javac HelloWorld.java"
Felet jag får är:
javac är inte ett internt kommando, externt kommando, program eller kommandofil.
Jag misstänker att felet ligger i min classpath/path.
Båda är placerade i Miljövariabler -> Systemvariabler
Denna lade jag till:
CLASSPATH:
c:\Tomcat 5.5\webapps\bjsg\;c:\Tomcat 5.5\common\bin\mysql-connector-java-3.1.6\;c:\program\sun\java\jdk1.5.0_01\lib;
Denna uppdaterade jag:
Path:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program\ATI Technologies\ATI Control Panel;c:\program\sun\java\jdk1.5.0_01\bin;
tack
Andreas
spangoMedlem sedan juni 20006 147 inlägg
jme skrev:
Men för att kompileraren ska hitta klassen, så måste den väl ha en sökväg?
Nope. Klassen behöver ju aldrig kommas åt under kompileringen. Som sagt, den laddas dynamiskt med forName, och alla instanser av den hanteras ändå bara med olika standardinterface. javac vet inte vad det är för sorts objekt som kommer fram från DriverManager.getConnection (eller vad som nu används), så den ser aldrig någon anledning att ladda MySQL:s driver-klass.
AG » Det är din path som är fel. Är sökvägen till Javas bin-katalog rätt?
AGMedlem sedan mars 20001 229 inlägg Efter att ha ändrat path som du sa spango så fungerade det, ett tag.
Nu får jag felet:
HTTP Status 404 - /bjsg/
--------------------------------------------------------------------------------
type Status report
message /bjsg/
description The requested resource (/bjsg/) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/5.5.4
stdout-loggen skriver ut:
2005-jan-22 21:05:23 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
2005-jan-22 21:05:23 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1782 ms
2005-jan-22 21:05:23 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
2005-jan-22 21:05:23 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.4
2005-jan-22 21:05:23 org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
2005-jan-22 21:05:24 org.apache.tomcat.util.digester.Digester endElement
ALLVARLIG: End event threw exception
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
....bottaget överflöd
Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name invoker
at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2223)
at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2203)
... 38 more
2005-jan-22 21:05:24 org.apache.catalina.startup.ContextConfig applicationWebConfig
ALLVARLIG: Parse error in application web.xml
java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name invoker
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2719)
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2745)
at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1060)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endNamespaceScope(XMLDTDValidator.java:2108)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2059)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:932)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1241)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561)
at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:302)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:955)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:249)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4012)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:437)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2010)
at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
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:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
2005-jan-22 21:05:24 org.apache.catalina.startup.ContextConfig applicationWebConfig
ALLVARLIG: Occurred at line 16 column 23
2005-jan-22 21:05:24 org.apache.catalina.startup.ContextConfig start
ALLVARLIG: Marking this application unavailable due to previous error(s)
2005-jan-22 21:05:24 org.apache.catalina.core.StandardContext start
ALLVARLIG: Error getConfigured
2005-jan-22 21:05:24 org.apache.catalina.core.StandardContext start
ALLVARLIG: Context startup failed due to previous errors
2005-jan-22 21:05:26 org.apache.catalina.core.ApplicationContext log
INFO: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: [url]http://www.cnn.com[/url]], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: [url]http://www.yahoo.com[/url]], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: [url]http://jakarta.apache.org[/url]]]
2005-jan-22 21:05:26 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
2005-jan-22 21:05:26 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
2005-jan-22 21:05:26 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
2005-jan-22 21:05:26 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
2005-jan-22 21:05:27 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
2005-jan-22 21:05:28 org.apache.jk.common.ChannelSocket init
INFO: JK2: ajp13 listening on /0.0.0.0:8009
2005-jan-22 21:05:28 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/40 config=null
2005-jan-22 21:05:28 org.apache.catalina.startup.Catalina start
INFO: Server startup in 4667 ms
2005-jan-22 21:09:09 org.apache.catalina.core.ApplicationContext log
INFO: InvokerFilter(ApplicationFilterConfig[name=Path Mapped Filter, filterClass=filters.ExampleFilter]): 10 milliseconds
Andreas
spangoMedlem sedan juni 20006 147 inlägg
AG skrev:
Efter att ha ändrat path som du sa spango så fungerade det, ett tag.
Nu får jag felet:
stdout-loggen skriver ut:
[i]*** snip[/i]
ALLVARLIG: Parse error in application web.xml
java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name invoker
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2719)
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2745)
[i]*** snip[/i]
Jahopp... och hur ser web.xml ut, då?
AGMedlem sedan mars 20001 229 inlägg Den i /conf/, se bifogad fil.
Nedan är den som listas i katalog bjsg
<?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>
Andreas
jmeMedlem sedan maj 20011 967 inlägg Du ska nog, förutom <servlet-mapping>...</servlet-mapping> också ha:
<servlet>
<servlet-name>invoker</servlet>
<servlet-class>Invoker (dvs namnet på klassen</servlet-class>
</servlet>
AGMedlem sedan mars 20001 229 inlägg jme, menar du att jag skall namnge varje klass. Har inte gjort det på tidgare versioner, men det har fungerat.
tack
Andreas