# Probleme mit Tomcat



## Guest (8. Sep 2008)

Hallo,

ich habe hier ein Tomcat laufen und eine Anwendung. Mein erstes Problem war, dass ich die externen Jars nicht eingebunden bekommen habe. Dieses Problem habe ich jetzt behoben.

Doch wenn ich jetzt das Programm aufrufe erhalte ich folgende Meldungen.

```
java.security.AccessControlException: access denied (java.io.FilePermission \GeoClientclient\Locale_de.properties read)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkRead(Unknown Source)
	at java.io.File.exists(Unknown Source)
	at de.prodv.geoclient.dao.services.locale.LocaleService.readPropertiesFromFile(LocaleService.java:90)
	at de.prodv.geoclient.dao.services.locale.LocaleService.doService(LocaleService.java:49)
	at de.prodv.geoclient.dao.provider.JOServiceLocalProvider.requestService(JOServiceLocalProvider.java:36)
	at de.prodv.geoclient.locale.LocaleController.getLanguageString(LocaleController.java:34)
	at de.prodv.geoclient.locale.LocaleLabel.setLanguageText(LocaleLabel.java:60)
	at de.prodv.geoclient.locale.LocaleLabel.setText(LocaleLabel.java:35)
	at de.prodv.geoclient.gui.statusbar.StatusBarLabel.<init>(StatusBarLabel.java:27)
	at de.prodv.geoclient.gui.statusbar.StatusBar.<init>(StatusBar.java:35)
	at de.prodv.geoclient.gui.GeoClientApplet.<init>(GeoClientApplet.java:74)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Applet2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at de.prodv.geoclient.locale.LocaleController.getLanguageString(LocaleController.java:35)
	at de.prodv.geoclient.locale.LocaleLabel.setLanguageText(LocaleLabel.java:60)
	at de.prodv.geoclient.locale.LocaleLabel.setText(LocaleLabel.java:35)
	at de.prodv.geoclient.gui.statusbar.StatusBarLabel.<init>(StatusBarLabel.java:27)
	at de.prodv.geoclient.gui.statusbar.StatusBar.<init>(StatusBar.java:35)
	at de.prodv.geoclient.gui.GeoClientApplet.<init>(GeoClientApplet.java:74)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Applet2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.security.AccessControlException: access denied (java.io.FilePermission \GeoClientclient\Locale_de.properties read)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkRead(Unknown Source)
	at java.io.File.exists(Unknown Source)
	at de.prodv.geoclient.dao.services.locale.LocaleService.readPropertiesFromFile(LocaleService.java:90)
	at de.prodv.geoclient.dao.services.locale.LocaleService.doService(LocaleService.java:49)
	at de.prodv.geoclient.dao.provider.JOServiceLocalProvider.requestService(JOServiceLocalProvider.java:36)
	at de.prodv.geoclient.locale.LocaleController.getLanguageString(LocaleController.java:34)
	at de.prodv.geoclient.locale.LocaleLabel.setLanguageText(LocaleLabel.java:60)
	at de.prodv.geoclient.locale.LocaleLabel.setText(LocaleLabel.java:35)
	at de.prodv.geoclient.gui.statusbar.StatusBarLabel.<init>(StatusBarLabel.java:27)
	at de.prodv.geoclient.gui.statusbar.StatusBar.<init>(StatusBar.java:39)
	at de.prodv.geoclient.gui.GeoClientApplet.<init>(GeoClientApplet.java:74)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Applet2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at de.prodv.geoclient.locale.LocaleController.getLanguageString(LocaleController.java:35)
	at de.prodv.geoclient.locale.LocaleLabel.setLanguageText(LocaleLabel.java:60)
	at de.prodv.geoclient.locale.LocaleLabel.setText(LocaleLabel.java:35)
	at de.prodv.geoclient.gui.statusbar.StatusBarLabel.<init>(StatusBarLabel.java:27)
	at de.prodv.geoclient.gui.statusbar.StatusBar.<init>(StatusBar.java:39)
	at de.prodv.geoclient.gui.GeoClientApplet.<init>(GeoClientApplet.java:74)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Applet2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.security.AccessControlException: access denied (java.io.FilePermission \GeoClientclient\Locale_de.properties read)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkRead(Unknown Source)
	at java.io.File.exists(Unknown Source)
	at de.prodv.geoclient.dao.services.locale.LocaleService.readPropertiesFromFile(LocaleService.java:90)
	at de.prodv.geoclient.dao.services.locale.LocaleService.doService(LocaleService.java:49)
	at de.prodv.geoclient.dao.provider.JOServiceLocalProvider.requestService(JOServiceLocalProvider.java:36)
	at de.prodv.geoclient.locale.LocaleController.getLanguageString(LocaleController.java:34)
	at de.prodv.geoclient.locale.LocaleLabel.setLanguageText(LocaleLabel.java:60)
	at de.prodv.geoclient.locale.LocaleLabel.setText(LocaleLabel.java:35)
	at de.prodv.geoclient.gui.statusbar.StatusBarLabel.<init>(StatusBarLabel.java:27)
	at de.prodv.geoclient.gui.statusbar.StatusBar.<init>(StatusBar.java:43)
	at de.prodv.geoclient.gui.GeoClientApplet.<init>(GeoClientApplet.java:74)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Applet2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at de.prodv.geoclient.locale.LocaleController.getLanguageString(LocaleController.java:35)
	at de.prodv.geoclient.locale.LocaleLabel.setLanguageText(LocaleLabel.java:60)
	at de.prodv.geoclient.locale.LocaleLabel.setText(LocaleLabel.java:35)
	at de.prodv.geoclient.gui.statusbar.StatusBarLabel.<init>(StatusBarLabel.java:27)
	at de.prodv.geoclient.gui.statusbar.StatusBar.<init>(StatusBar.java:43)
	at de.prodv.geoclient.gui.GeoClientApplet.<init>(GeoClientApplet.java:74)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Applet2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.security.AccessControlException: access denied (java.io.FilePermission \GeoClientclient\Locale_de.properties read)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkRead(Unknown Source)
	at java.io.File.exists(Unknown Source)
	at de.prodv.geoclient.dao.services.locale.LocaleService.readPropertiesFromFile(LocaleService.java:90)
	at de.prodv.geoclient.dao.services.locale.LocaleService.doService(LocaleService.java:49)
	at de.prodv.geoclient.dao.provider.JOServiceLocalProvider.requestService(JOServiceLocalProvider.java:36)
	at de.prodv.geoclient.locale.LocaleController.getLanguageString(LocaleController.java:34)
	at de.prodv.geoclient.locale.LocaleLabel.setLanguageText(LocaleLabel.java:60)
	at de.prodv.geoclient.locale.LocaleLabel.setText(LocaleLabel.java:35)
	at de.prodv.geoclient.gui.statusbar.StatusBarLabel.<init>(StatusBarLabel.java:27)
	at de.prodv.geoclient.gui.statusbar.StatusBar.<init>(StatusBar.java:47)
	at de.prodv.geoclient.gui.GeoClientApplet.<init>(GeoClientApplet.java:74)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Applet2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at de.prodv.geoclient.locale.LocaleController.getLanguageString(LocaleController.java:35)
	at de.prodv.geoclient.locale.LocaleLabel.setLanguageText(LocaleLabel.java:60)
	at de.prodv.geoclient.locale.LocaleLabel.setText(LocaleLabel.java:35)
	at de.prodv.geoclient.gui.statusbar.StatusBarLabel.<init>(StatusBarLabel.java:27)
	at de.prodv.geoclient.gui.statusbar.StatusBar.<init>(StatusBar.java:47)
	at de.prodv.geoclient.gui.GeoClientApplet.<init>(GeoClientApplet.java:74)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Applet2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Applet Status: Ausnahme: access denied (java.util.PropertyPermission org.geotools.referencing.forceXY write)
java.security.AccessControlException: access denied (java.util.PropertyPermission org.geotools.referencing.forceXY write)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.System.setProperty(Unknown Source)
	at de.prodv.geoclient.gui.map.CRSCombo.init(CRSCombo.java:91)
	at de.prodv.geoclient.gui.map.CRSCombo.<init>(CRSCombo.java:36)
	at de.prodv.geoclient.gui.statusbar.StatusBarCombo.<init>(StatusBarCombo.java:21)
	at de.prodv.geoclient.gui.statusbar.StatusBar.<init>(StatusBar.java:53)
	at de.prodv.geoclient.gui.GeoClientApplet.<init>(GeoClientApplet.java:74)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Applet2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Ausnahme: java.security.AccessControlException: access denied (java.util.PropertyPermission org.geotools.referencing.forceXY write)
```


Kann mir jemand sagen was das bedeutet und wie ich das behoben bekomme???

Gruß


----------



## robertpic71 (8. Sep 2008)

1.) Möglicherweise fehlt am Dateisystem die Berechtigung für die entsprechenden Dateien? 

2.) oder aber der Security-Manager verhindert den Zugriff. (unter Debian kann man den in der Datei /etc/init.d/tomcat55 yes|no abstellen, unter Windows war das noch nie notwendig)

Unter welchem Betriebssystem läuft der Tomcat? 

/Robert


----------



## Guest (8. Sep 2008)

Unter Windows XP


----------



## robertpic71 (8. Sep 2008)

Mir ist beim ersten Mal nicht aufgefallen, dass es sich um Applets handelt?

Wo kommt die Fehlermeldung:
als HTML-Fehlertext im Browser (auch im Tomcatlog zu finden)

oder
in der Javakonsole vom Browser

Wo steht das File \GeoClientclient\Locale_de.properties herum? Im Jar?
Wie greifst du darauf zu?

Ohne Signatur darf ein Applet nicht auf das Filesystem zugreifen.

/Robert


----------



## Guest (8. Sep 2008)

Funktioniert jetzt danke. Signaturen hatte ich, habe jetzt ein externes Tool benutzt


----------



## Guest (8. Sep 2008)

Jetzt habe ich ein Problem. Ich soll nun alles ohne Signaturen hinbekommen?

Wie soll das gehen??


----------



## robertpic71 (8. Sep 2008)

Normalerweise kann man die Sachen ja ein das Jar packen (solange man nur davon liest). Allerdings ändern sich u.U. die Lesebefehle.

Hast du noch andere Zugriffe aufs Dateisystem (außer den Properties)?
Wie greifts du darauf zu?

/Robert


----------



## Guest (8. Sep 2008)

Wenn ich alleo Properties Imports und externe Jars zu einem Jarfile zusammen packe, dann funktioniert es. Sobald ich die externen Jars nicht mehr hinzufüge und es mit archive="GeoClient.jar,lib/acme.jar...... angebe, bekommt ich die access denied


----------



## robertpic71 (8. Sep 2008)

Meine Appletkenntnisse sind recht bescheiden (da nicht benötigt), aber

..,lib/acme.jar

aber wenn man lib/acme.jar angibt, sollte die Jar-Datei auch im Verzeichnis lib sein (relativ zur htmlseite mit dem eingebettenen Applet). Ist das so bei dir?

/Robert


----------



## Guest (8. Sep 2008)

Ja das ist so


----------



## Guest (9. Sep 2008)

SO nun ist es Amtlich ich muss nun das Applet ohen Signaturen zum Laufen bekommen, ist das Möglich??

Wenn ja wie??


----------



## maki (9. Sep 2008)

> Wenn ja wie??


Frag doch diejenigen die darauf bestehen dass es ohne Signatur geht, die werden ja die Entscheidung nicht einfach so gefällt haben, oder?


----------



## Guest (9. Sep 2008)

Der ist jetzt erstmal drei Wochen im urlaub[/list]


----------



## Guest (10. Sep 2008)

Wofür sind Signaturen überhaupt da??

WOzu braucht man sie??


----------



## HLX (10. Sep 2008)

Applets laufen in einer sogenannten Sandbox. Sicherheitkritische Operationen, wie Zugriffe auf das Dateisystem sind nicht ohne weiteres erlaubt. Stell dir vor, du besuchst eine Internetseite auf der sich ein Applet befindet, welches sich automatisch herunterlädt, ausführt und dann dein Dateisystem zumüllt.

Manchmal sind allerdings Zugriffe auf den sicherheitskritischen Bereich erwünscht. Dies kann der Benutzer dann explizit steuern, in dem er einer Signatur vertraut. Damit signalisiert er, dass das Applet vertrauenswürdig ist und der kritische Code ausgeführt werden darf.


----------

