webForumDet fria alternativet

Tomcat 5,5 & JDK 5

Java

11 svar · 890 visningar · startad av AG

Medlem sedan mars 20001 266 inlägg
Frågan#1

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

Medlem sedan juli 20011 304 inlägg
#2

svaret på fråga ett finns här:
http://www.webforum.nu/showthread.php?s=&postid=979551#post979551

Medlem sedan maj 20012 237 inlägg
#3

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.

Medlem sedan juni 20008 205 inlägg
#4

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 :)

Medlem sedan maj 20012 237 inlägg
#5

Men för att kompileraren ska hitta klassen, så måste den väl ha en sökväg?

Medlem sedan mars 20001 266 inlägg
#6

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

Medlem sedan juni 20008 205 inlägg
#7

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?

Medlem sedan mars 20001 266 inlägg
#8

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

Medlem sedan juni 20008 205 inlägg
#9

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å?

Medlem sedan mars 20001 266 inlägg
#10

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

Medlem sedan maj 20012 237 inlägg
#11

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>

Medlem sedan mars 20001 266 inlägg
#12

jme, menar du att jag skall namnge varje klass. Har inte gjort det på tidgare versioner, men det har fungerat.

tack
Andreas

277 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
148 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)