ResourceBundle in Servlets verwenden

Rokko_11

Mitglied
Hi!
Kaum (na ja.. 2 Stunden is her ;) ) ist das alte Problem gelöst, stoße ich gleich auf das neue!

Meine problembereitende Klasse besitzt im Quelltext die Zeile:
ResourceBundle b = ResourceBundle.getBundle("binding");
In dem Ordner Projekt/build/classes befindet sich auch dieses binding.properties.

Schreibe ich nun eine Testmethode, findet mein Programm diese Propertie auch. So solls ja auch sein.

Schmeiße ich allerdings meinen Apache-Server an und versuche, dieses Properties über ein Servlet zu finden, scheitere ich kläglich.
Habe das binding.properties auch bereits in jeden erdenklichen Ordner reingeschoben...

Hat wer ne Ahnung? :(
 

Rokko_11

Mitglied
Also... die Datei liegt bei mir unter workspace/DynamicWebProjekt1/WebContent/WEB-Inf/classes
Der Ordner classes war allerdings nicht bereits vorhanden, sondern musste extra erstellt werden. Ist auch nur diese eine einzige Datei drinne...

Gibt es vielleicht Probleme mit den Packages? Die Klasse, die das properties haben will, befindet sich nicht im defaultpackage.
 

Rokko_11

Mitglied
Eigentlich nicht. Im classes Ordner liegen die bei mir auch drin. Kriegst du irgendeine Exception?

jo tu ich!

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

exception

javax.servlet.ServletException: Servlet execution threw an exception


root cause

java.lang.ExceptionInInitializerError
de.casetrain.binding.CaseFacade.load(CaseFacade.java:47)
source.fileUpload.doPost(fileUpload.java:54)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause

java.util.MissingResourceException: Can't find bundle for base name binding, locale de_DE
java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
java.util.ResourceBundle.getBundleImpl(Unknown Source)
java.util.ResourceBundle.getBundle(Unknown Source)
de.casetrain.binding.LoadSave.<clinit>(LoadSave.java:50)
de.casetrain.binding.CaseFacade.load(CaseFacade.java:47)
source.fileUpload.doPost(fileUpload.java:54)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


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

und in der Eclipse-Console:

30.12.2009 17:21:00 org.apache.catalina.core.StandardWrapperValve invoke
SCHWERWIEGEND: Servlet.service() for servlet fileUpload threw exception
java.util.MissingResourceException: Can't find bundle for base name binding, locale de_DE
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at de.casetrain.binding.LoadSave.<clinit>(LoadSave.java:50)
at de.casetrain.binding.CaseFacade.load(CaseFacade.java:47)
at source.fileUpload.doPost(fileUpload.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)

Und grad das Problem: LoadSave in Zeile 50 steht geschrieben:
ResourceBundle b = ResourceBundle.getBundle("binding");


Servlets und LoadSave sind in zwei verschiedenen Packages.
 

Rokko_11

Mitglied
Den kompletten Code poste ich nicht. Das was ich da bekommen habe, ist an Unübersichtlichkeit nicht zu übertreffen ;)

Aber hab das alles jetzt mal auf das nötigste runtergebrochen (aber keine Sorge... funktioniert immer noch nicht ;) )

Alles befindet sich im DynamicWebProjekt namens testProjekt.

2 Packages: neuesPackage1 und neuesPackage2

in neuesPackage1 enthalten sind die 2 Klassen "testAufruf.java" und "verteilerservlet.java"
in neuesPackage2 enthalten ist nur "aufzurufendeKlasse.java"

Dann gibts noch ein html-File "aufrufendesHTML.html"

Quellcode testAufruf.java
package neuesPackage1;
public class testAufruf {
public static void main(String [] args) {
neuesPackage2.aufzurufendeKlasse.a();
}
}

Quellcode verteilerservlet.java
package neuesPackage1;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class verteilerservlet extends HttpServlet {
public verteilerservlet() {super();}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
neuesPackage2.aufzurufendeKlasse.a();
}
}

quellcode aufzurufendeKlasse.java:
package neuesPackage2;
import java.util.ResourceBundle;
public class aufzurufendeKlasse {
public static void a() {
ResourceBundle b = ResourceBundle.getBundle("binding");
}
}

Quellcode aufrufendesHTML.html
<html>
<body>
<form id="file" name="file" method="post"
action="/testProjekt/verteilerservlet">
<input type="submit" name="submit" id = "submit"></input></form>
</body>
</html>

Quellcode web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>testProjekt</display-name>
<servlet>
<description></description>
<display-name>verteilerservlet</display-name>
<servlet-name>verteilerservlet</servlet-name>
<servlet-class>neuesPackage1.verteilerservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>verteilerservlet</servlet-name>
<url-pattern>/verteilerservlet</url-pattern>
</servlet-mapping>
</web-app>

und dort scheitert es bereits dran...
Rufe ich testAufruf.java auf, klappt alles. Drücke ich jedoch auf den Button des html, klappt nix mehr...
Die binding.properties kann in diesem Fall ja auch leer sein... Ich wäre ja schon über eine andere Fehlermeldung froh ;)
 

X3TitanCore

Bekanntes Mitglied
Als ich habe das jetzt mal so wie von dir beschrieben nachgebaut und bekomme keine Exception.
Was ich geändert habe ist der Post link im Formular zu

http://127.0.0.1:8080/TestProjekt/Verteilerservlet

Klick ich den Button an gibt er mit meine Test Propertie aus. Du solltest dir auch angewöhnen Klassen immer mit einem Großbuchstaben zu beginnen.

Die Ausgabe erfolgt dann über

Java:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	PrintWriter p = response.getWriter();
	p.write(ResourceBundle.getBundle("binding").getString("Test"));
}

Was ich nicht weiß, ist warum Deine TestAufruf Klasse eine main Methode hat. Die gibt es eigentlich nicht bei einer Webanwendung. Es wird das Servlet vom Container initialisiert, sonst nix. Alle anderen Objekte erzeugst du über die Initialisierung aus dem Servlet heraus.
 
Zuletzt bearbeitet:

Rokko_11

Mitglied
Hi!

die Mainmethode habe ich nur dafür gedacht, um mir selbst zu zeigen, dass der Aufruf über die mainmethode keinen Fehler, über das servlet jedoch einen Fehler wirft...

Schad, dass das bei dir geht :(
muss wahrscheinlich irgendwo in der Einstellung des Apacheservers mal rumkonfiguiert worden sein...
Ich fang dann mal an zu suchen ;)

Auf jeden fall riesen Dank!
 

X3TitanCore

Bekanntes Mitglied
Änder doch bei dir auch mal den Link so wie bei mir. Mit deinem ging das bei mir auch nicht, da der Tomcat ja als Standartport 8080 hat.
 

Rokko_11

Mitglied
Hm... Hab jetzt alles mit Groß/Kleinschreibung geändert, Link angepasst, klappt aber leider immer noch nicht :(
Die properties-Datei muss in Web-Inf/classes liegen?
Ist das normal, das der classes-Ordner manuell erstellt werden muss und auch nach x-maligem aktualisieren nicht im Eclipse-Project-Explorer angezeigt wird?
 

X3TitanCore

Bekanntes Mitglied
Die Datei muß im classes Ordner liegen. Nein der Ordner wird von Eclipse automatisch erzeugt. Dort packt Eclipse auch alle kompilierten Klassen rein. Du mußt mit rechts auf deinen Projektordner klicken und dann Run As dann Run on Server. Wenn nicht vorhanden mußt du den Server angeben. Auch die properties packt er automatisch dort rein.
 

Rokko_11

Mitglied
Tausend Dank! Jetzt geht's so halb :)
Das lag irgendwie alles an dem classes-Ordner. Bei mir erstellt er sich nicht automatisch :-/ deswegen musste ich ihn per Hand erstellen, dann mit refresh in den Eclipse-Package-Explorer anzeigen lassen...

Dann gings irgendwie. Hört sich nicht gesund an, gell ;-)

Danke für die Geduld!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ernesto95 Best Practice Localization über ResourceBundle Allgemeine Java-Themen 6
S URLClassLoader findet ResourceBundle nicht Allgemeine Java-Themen 0
L OOP Wohin mit dem ResourceBundle für Mehrsprachigkeit? Allgemeine Java-Themen 1
H ResourceBundle während Laufzeit bearbeiten Allgemeine Java-Themen 3
E ResourceBundle.getBundle() Problem Allgemeine Java-Themen 6
A Classpath ResourceBundle Problem bzgl. Pfade bzw. Pfade (auch in Eclipse) generell? Allgemeine Java-Themen 7
firefexx ResourceBundle laden Allgemeine Java-Themen 2
U Mehrsprachigkeit mit ResourceBundle Allgemeine Java-Themen 9
S ResourceBundle: Locale Datei in Jar finden Allgemeine Java-Themen 3
C Reload ResourceBundle Allgemeine Java-Themen 6
S Resourcebundle - mehrzeiligen Text erlauben Allgemeine Java-Themen 3
R ResourceBundle-Verständnisproblem Allgemeine Java-Themen 3
P Mehrsprachig programmieren ResourceBundle Allgemeine Java-Themen 6
A ResourceBundle ohne LOCALE funkt nicht. Allgemeine Java-Themen 4
G Tomcat ResourceBundle Allgemeine Java-Themen 7
L Alle Keys eines ResourceBundle Allgemeine Java-Themen 3
T ResourceBundle aus .jar auslesen > MissingResourceExcepti Allgemeine Java-Themen 4
S ResourceBundle findet Resource nicht Allgemeine Java-Themen 4
J ResourceBundle / properties-datei während der Laufzeit verän Allgemeine Java-Themen 6
J Soap Client mit mehreren URLs in Servlets Allgemeine Java-Themen 0
K Servlets - Erklärung/Definition Allgemeine Java-Themen 2
J Welche Lösung für Servlets und JSPs in Eclipse? Allgemeine Java-Themen 5
E Doku zu Servlets (Klassen und Methoden)? Allgemeine Java-Themen 3
G Testen von RMI,TCP/IP, Servlets etc. Allgemeine Java-Themen 2
T FileUpload ohne Servlets Allgemeine Java-Themen 5
G Video Streams mit Servlets Allgemeine Java-Themen 3
Z Was brauche ich für Servlets? Allgemeine Java-Themen 17
G Servlets: Ganzer Pfad und Dateiname des verschickten Forms Allgemeine Java-Themen 15
N Servlets: Formulardaten auslesen (POST) - mehr Informationen Allgemeine Java-Themen 4
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
J Welchen Packager soll ich verwenden. Allgemeine Java-Themen 7
H lokale Variable bei Optional verwenden Allgemeine Java-Themen 11
M Exceptions - wann / wie verwenden? Allgemeine Java-Themen 4
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
bueseb84 Git : Mehrere Server verwenden Allgemeine Java-Themen 3
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
D Klassen JLabels in anderen Klassen verwenden. Allgemeine Java-Themen 7
D API Keys mehrmals verwenden Allgemeine Java-Themen 6
K For-Schleife <> oder != Operator verwenden? Allgemeine Java-Themen 2
J Eigene Api erstellen und dann auch verwenden - Ordnerstruktur Allgemeine Java-Themen 1
J PDFBox kommerziell verwenden Allgemeine Java-Themen 15
S Variablen split-Funkton mit zwei Variabeln verwenden? Allgemeine Java-Themen 4
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
M Java Mail verwenden Allgemeine Java-Themen 20
Neumi5694 Interface Generics für Enum-Filterung verwenden Allgemeine Java-Themen 5
J Interface Wofür Interfaces in Java verwenden? Allgemeine Java-Themen 3
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
O 3D-Grafik java3D in eclipse verwenden Allgemeine Java-Themen 0
J Allgemein gültige Klasse/Methode mehrfach verwenden Allgemeine Java-Themen 11
R Threads ReentrantLock mehrfach verwenden Allgemeine Java-Themen 3
J Interface Interface für Framework verwenden Allgemeine Java-Themen 4
G Services verwenden sich gegenseitig Allgemeine Java-Themen 4
R Dateimanager verwenden Allgemeine Java-Themen 2
P Variablen Variable von void im ActionListener verwenden Allgemeine Java-Themen 3
N VB Code in Java verwenden Allgemeine Java-Themen 5
P java.nio.file unter Java 6 verwenden Allgemeine Java-Themen 4
A Klassen String Array in anderer Klasse verwenden Allgemeine Java-Themen 11
P JDK installieren Mac OS X - JDK7 in Eclipse Juno verwenden Allgemeine Java-Themen 3
L Eine jar verwenden, die intern auf eine andere jar zugreift Allgemeine Java-Themen 7
S Aus Programm Klasse erstellen und verwenden Allgemeine Java-Themen 10
R Collections CopyOnWriteArrayList - wie genau verwenden Allgemeine Java-Themen 7
M Lock Datei intelligent verwenden Allgemeine Java-Themen 4
J Eure Meinung: Threads verwenden, oder nicht? Allgemeine Java-Themen 6
X Threads Thread mehrmals verwenden Allgemeine Java-Themen 4
G JGoodies Binding oder EventBus verwenden? Allgemeine Java-Themen 11
E Kann nicht gesamten HeapSpace verwenden Allgemeine Java-Themen 5
A Eigenen OutputStream schreiben und verwenden Allgemeine Java-Themen 9
M Poi-Excel: vorhandene Formatierung verwenden Allgemeine Java-Themen 2
B boolean return typ verwenden? Allgemeine Java-Themen 5
A Welche Exception verwenden? Allgemeine Java-Themen 2
R Java function die Strings escaped, sodass ich sie in Javascript verwenden kann? Allgemeine Java-Themen 4
MQue Vector<..> nicht verwenden Allgemeine Java-Themen 4
T Pfad aus Dateilesen -> wie diesen Pfad verwenden! Allgemeine Java-Themen 13
R in einem neuen Runnable() eine lokale Varibale verwenden Allgemeine Java-Themen 2
G dll verwenden Allgemeine Java-Themen 2
A Bestimmte JVM verwenden Allgemeine Java-Themen 13
R array.length in For-Schleife verwenden? Allgemeine Java-Themen 22
F Generics: spricht etwas dagegen raw types zu verwenden? Allgemeine Java-Themen 31
B Passwort verwenden ohne dass es im Quelltext steht Allgemeine Java-Themen 24
D Lostus Notes Adressbuch in eine Java-Webanwendung verwenden Allgemeine Java-Themen 4
G JasperReports: Verwenden von vorkompilierten Reports Allgemeine Java-Themen 2
ToNyXXL Als Mauszeiger eigenes Bild verwenden! Allgemeine Java-Themen 3
A Windows Bitmap-Handle in Java verwenden Allgemeine Java-Themen 2
G Ab wann Datenbank verwenden Allgemeine Java-Themen 15
D .dlls mit Java verwenden Allgemeine Java-Themen 2
M JNI mit vorhandenen libs oder dlls verwenden Allgemeine Java-Themen 2
N Klasse die in C geschrieben wurde in Java verwenden? Allgemeine Java-Themen 20
H Tastatur eingaben verwenden Allgemeine Java-Themen 30
E Statt HashSet die TreeSet verwenden Allgemeine Java-Themen 4
G eigene klassen die ein jar verwenden als neues jar erstellen Allgemeine Java-Themen 4
M java klassen beerben u. den gleichen namen verwenden?(Naming Allgemeine Java-Themen 6
S Änderungen im Source-Code direkt verwenden können? Allgemeine Java-Themen 3
R Sofort "eth0" verwenden Allgemeine Java-Themen 2
G Photoshop Plugins in Java verwenden. Allgemeine Java-Themen 3
P globale Varibalen verwenden? Allgemeine Java-Themen 13
G JRE 1.5.0-rc nicht als Standard-JRE verwenden Allgemeine Java-Themen 6
P Welche Collection verwenden? Allgemeine Java-Themen 4
S Comparator verwenden? Allgemeine Java-Themen 2
J System Tray verwenden Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben