Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Tomcat finde eine Klasse nicht

1 view
Skip to first unread message

Bernhard Schimanski

unread,
Dec 2, 2005, 6:06:07 AM12/2/05
to
Hallo NG,

auf dem Rechner läuft Tomcat 5.0.30, Win XP Prof, IIS 5.1, PHP 5.1.1.
C:\>java -version
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode)

Also im Webverzeichnis c:\web\ver1\ leigt eine php Dateien in der ein Applet aufgerufen werden soll.
Die Applet Klasse ist in einem jar-Archiv, "Archiv1.jar".
Das gleiche Archiv wird ebenfalls ins Tomcat Verzeichnis kopiert, in dem Applet befindet sich ebenfalls ein Packeger das
Zugriff auf eine mssql DB ermöglich, die erste Klasse, die die Verbindung zwischen dem Applet und dem Servelt herstellen
soll gibt in der Javakonsole folgende Fehlermeldung:

java.io.IOException: Server returned HTTP response code: 500 for URL: http://Rechner1/PServer/KLEnv
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at Ediflow.CEnvironment.ReadEnv(KLEnvironment.java:336)
at Ediflow.CEnvironment.CreateEnvironment(KLEnvironment.java:191)
...

Wenn ich in der Klasse "KLEnviroment" in der Zeile 336 schaue:
...
URLConnection con = getEnvServletConnection();
OutputStream outstream = con.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(outstream);

oos.writeObject(DateiName);

oos.flush();
oos.close();

// receive result from servlet
InputStream instr = con.getInputStream(); // Zeile 336
ObjectInputStream inputFromServlet = new ObjectInputStream(instr);
...

In der Datei "web.xml" sind alle Klassen mit Packagename eingetragen, die die DB ansprechen solle.
In der Datei "server.xml" ist das Projekt ebenfalls eingetragen mit:
<Context path="/PServer" docBase="PServer" debug="1" reloadable="true" crossContext="true">
...
In der Datei "uiworkemap.poropetries" ist folgender Eintrag:
...
/PServer=ajp13
/PServer/*=ajp13
...
In der Datei "workers.properties" ist mein aktuelle jdk:
...
workers.java_home=c:\Programme\java\jdk1.5.0_05
...
eingetragen.

Oben aus der Fehlermeldung geht hervor dass der Tomcate die "/KLEnv" Klasse nicht finden kann, wie kann ich dem Tomcate
das mit teilen wie er die Klasse finden kann?

Danke im Voraus.

Grüße Bernhard

Bernhard Schimanski

unread,
Dec 2, 2005, 6:17:10 AM12/2/05
to

Ingo R. Homann

unread,
Dec 2, 2005, 7:26:54 AM12/2/05
to
Hi,

Bernhard Schimanski wrote:
> java.io.IOException: Server returned HTTP response code: 500 for URL:
> http://Rechner1/PServer/KLEnv
> at
> sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
> at Ediflow.CEnvironment.ReadEnv(KLEnvironment.java:336)
> at Ediflow.CEnvironment.CreateEnvironment(KLEnvironment.java:191)
> ...
>

> Oben aus der Fehlermeldung geht hervor dass der Tomcate die "/KLEnv"
> Klasse nicht finden kann, wie kann ich dem Tomcate das mit teilen wie er
> die Klasse finden kann?

Äh, Moment. Ich verstehe das so, dass tomcat zunächstmal die URL
"http://Rechner1/PServer/KLEnv" mit dem FehlerCode 500 (="Interner
Fehler" laut Google) beantwortet.

Passiert das nur, wenn Du diese URL über dein Applet aufrufst?

Was passiert, wenn Du diese URL im Browser aufrufst?

Dass Du in der web.xml von tomcat entsprechende Einträge vornehmen
musst, um eine URL auf ein Servlet (und ein Servlet auf eine
entsprechende Klasse) zu mappen, weisst Du?

Ciao,
Ingo

Bernhard Schimanski

unread,
Dec 2, 2005, 8:01:41 AM12/2/05
to
Ingo R. Homann schrieb:

> Hi,
>
> Bernhard Schimanski wrote:
>
>> java.io.IOException: Server returned HTTP response code: 500 for URL:
>> http://Rechner1/PServer/KLEnv
>> at
>> sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
>> Source)
>> at Ediflow.CEnvironment.ReadEnv(KLEnvironment.java:336)
>> at Ediflow.CEnvironment.CreateEnvironment(KLEnvironment.java:191)
>> ...
>>
>> Oben aus der Fehlermeldung geht hervor dass der Tomcate die "/KLEnv"
>> Klasse nicht finden kann, wie kann ich dem Tomcate das mit teilen wie
>> er die Klasse finden kann?
>
>
> Äh, Moment. Ich verstehe das so, dass tomcat zunächstmal die URL
> "http://Rechner1/PServer/KLEnv" mit dem FehlerCode 500 (="Interner
> Fehler" laut Google) beantwortet.
>
> Passiert das nur, wenn Du diese URL über dein Applet aufrufst?
Also in der PHP Seite ist das Applet eingebunden und wird über den Webserver aufgerufen, so wie Du es zitiert hast.

>
> Was passiert, wenn Du diese URL im Browser aufrufst?

Leider nur Fehlermeldung, aus den ich nicht schlau bin :-(

http://Rechner1/PServer/KLEnv
Fehler:

HTTP Status 500 -

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

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error allocating a servlet instance
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Unknown Source)


root cause

java.lang.UnsupportedClassVersionError: Server/KLEnvServlet (Unsupported major.minor version 49.0)
java.lang.ClassLoader.defineClass0(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1634)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:860)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1307)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Unknown Source)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.


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

Das alles wird im Browser angezeigt, in der log ist noch mehr.

>
> Dass Du in der web.xml von tomcat entsprechende Einträge vornehmen
> musst, um eine URL auf ein Servlet (und ein Servlet auf eine
> entsprechende Klasse) zu mappen, weisst Du?

ja, in der Datei "web.xml" sind alle Klassen mit Packagename eingetragen, die die DB ansprechen solle.
In der web.xml sind folgende Einträge:
...
<servlet>
<servlet-name>EFEnv</servlet-name>
<servlet-class>Server.KLEnvServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>EFEnv</servlet-name>
<url-pattern>/EFEnv</url-pattern>
</servlet-mapping>
...

Die Klasse "KLEnvServlet" ist in dem Package "Server".


Grüße Bernhard

Stefan Matthias Aust

unread,
Dec 2, 2005, 8:15:22 AM12/2/05
to
Bernhard Schimanski schrieb:

> root cause
>
> java.lang.UnsupportedClassVersionError: Server/KLEnvServlet (Unsupported
> major.minor version 49.0)

Dein Code ist mit J2SE 5.0 kompiliert, aber du benutzt nur ein JRE 1.4.2
oder älter zum Ausführen. Das geht nicht. Entweder mit "-target 1.4"
kompilieren oder aber dafür sorgen, dass auf deinem Server J2SE 5.0 aka
JRE 1.5.0 läuft.

> note The full stack trace of the root cause is available in the Apache
> Tomcat/5.0.30 logs.

Und wenn du 1.5.0 laufen lässt, kannst du auch Tomcat 5.5.x benutzen :)

--
Stefan Matthias Aust

Bernhard Schimanski

unread,
Dec 2, 2005, 9:05:06 AM12/2/05
to
Hi,

danke für den Hinweis.

Stefan Matthias Aust schrieb:


> Bernhard Schimanski schrieb:
>
>> root cause
>>
>> java.lang.UnsupportedClassVersionError: Server/KLEnvServlet
>> (Unsupported major.minor version 49.0)
>
>
> Dein Code ist mit J2SE 5.0 kompiliert, aber du benutzt nur ein JRE 1.4.2
> oder älter zum Ausführen. Das geht nicht. Entweder mit "-target 1.4"
> kompilieren oder aber dafür sorgen, dass auf deinem Server J2SE 5.0 aka
> JRE 1.5.0 läuft.

ja, das stimmt, ich kompieliere mit 1.5.0 und im Tomcat: http://recghner1:8080/manager/status wird die JVM Version:
1.4.2_08-b03 angezeigt.

In der Datei c:\Programme\Apache Software Foundation\Tomcat 5.0\conf\workers.properties habe ich eine Stelle gefunden
mit "java_home": workers.java_home=c:\Programme\Java\jre1.5.0_05, dort habe ich die bei mir aktuelle JRE eingetragen,
den Tomcat über Dienste neu gestarten aber im Statusmanager wird noch immer die 1.4.1_08 angezeitgt, wie kann ich den
Tomcat umstellen, welche Datei ist dafür zuständig?

>
>> note The full stack trace of the root cause is available in the Apache
>> Tomcat/5.0.30 logs.
>
>
> Und wenn du 1.5.0 laufen lässt, kannst du auch Tomcat 5.5.x benutzen :)
>

Danke für den Hinweis, werde säter in Erwähgung ziehen.

Grüße Bernhard

Bernhard Schimanski

unread,
Dec 2, 2005, 9:17:46 AM12/2/05
to
Hi,

die Java Version habe ich für Tomcat schon umgestellt, er nimmt jetzt die 1.5.0 Java Version.

Grüße Bernhard

Bernhard Schimanski schrieb:

Andreas Jaeger

unread,
Dec 2, 2005, 8:44:16 AM12/2/05
to
Stefan Matthias Aust wrote:

> Und wenn du 1.5.0 laufen lässt, kannst du auch Tomcat 5.5.x benutzen :)

Wenn ich mich recht erinnere, gehen Tomcat 5.0 und Java 1.5 nicht
gut zusammen, wieder irgendwelche XML-Parser Geschichten. Ich
rate auf jeden Fall zu Tomcat 5.5

--
-----------------------------------------------
Andreas Jaeger
Institut für Geoinformatik, Universität Münster
http://ifgi.uni-muenster.de
-----------------------------------------------

0 new messages