Eclipse + Tomcat Debug - WEB-INF

Danielku15

Erfahrenes Mitglied
Hallo.
Ich habe gerade ein Problem mit meinem dynamischen Web-Projekt in Eclipse.
Ich greife in einem Servlet, welches beim Startup geladen wird den Pfad zum WEB-INF Verzeichnis ab um Konfigurationen für Log4j und Hibernate zu laden.
Java:
public void init(ServletConfig oConfig) throws ServletException
{
    String sConfigDirectory = oConfig.getServletContext().getRealPath(File.separator) + "WEB_INF/config";
...
Während dem Debuggen ist dieses Verzeichnis: D:\dev\java\projects\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\NeuesProjekt\WEB_INF/config

Wenn ich nun exakt diesen Pfad über den Explorer öffnen will findet er das Verzeichnis nicht :eek:
Wenn ich jedoch in den Ordner
D:\dev\java\projects\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ wechsle sehe ich dort den Ordner NeuesProjekt und kann bis auf das Konfigurationsverzeichnis navigieren :confused:.

Das Problem liegt nun dabei dass ich von Java aus auch keine Dateien aus diesem Verzeichnis öffnen kann, lediglich eine NullPointerException wird geworfen.

Legt Eclipse evtl. einen symbolischen Link an welcher nicht ordentlich aufgelöst werden kann? Kann ich evtl den temporären Deploypfad ändern?

Hier eine Umgebung
Eclipse Java EE IDE Build id: 20090621-0832
Tomcat 6.0
Windows 7 RC1

Grüße
Daniel
 
Zuletzt bearbeitet:
Hallo,

folgende Testausgaben können evtl noch mehr Infos bringen:

Code:
			File f = new File(sConfigDirectory );
			System.out.println(f.exists());
			System.out.println(f.isDirectory());
			System.out.println(f.getAbsolutePath());
			System.out.println(f.listFiles().length);
 
Hallo.
Ich habe gerade eben herausgefunden wie ich den Deploypfad ändern kann. Alle Projekte vom Server nehmen. Server in der Server-View publishen und dann ein Doppelklick auf diesen. Dann findet man unter Server-Locations die Möglichkeit den Deploypfad zu ändern. Und siehe da, der Pfad ist auf: D:\dev\java\tomcat\wtpwebapps\iScrum\WEB_INF/config

Aber das Problem ist damit nicht behoben. Es kann immer noch nicht auf dieses Verzeichnis direkt zugegriffen werden (nicht per Explorer über den ganzen Pfad noch über Java. wieder nur per Navigation)

Folgende Testausgaben bekomme ich:
Code:
false
false
D:\dev\java\tomcat\wtpwebapps\iScrum\WEB_INF\config
21.08.2009 14:29:08 org.apache.catalina.core.ApplicationContext log
SCHWERWIEGEND: StandardWrapper.Throwable
java.lang.NullPointerException
	at net.coderline.module.scrum.InitServlet.init(InitServlet.java:52)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4149)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4458)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
21.08.2009 14:29:08 org.apache.catalina.core.StandardContext loadOnStartup
SCHWERWIEGEND: Servlet /iScrum threw load() exception
java.lang.NullPointerException
	at net.coderline.module.scrum.InitServlet.init(InitServlet.java:52)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4149)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4458)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

Und noch eine kleine Verzeichnisanalyse über die PowerShell:
Code:
PS D:\dev\java\tomcat> dir


    Verzeichnis: D:\dev\java\tomcat


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        21.08.2009     14:21            backup
d----        14.05.2009     01:15            bin
d----        21.08.2009     14:21            conf
d----        14.05.2009     01:15            lib
d----        14.05.2009     01:15            logs
d----        21.08.2009     14:21            temp
d----        21.08.2009     14:11            tmpdeploy
d----        14.05.2009     01:15            webapps
d----        21.08.2009     14:21            work
d----        21.08.2009     14:21            wtpwebapps
-a---        14.05.2009     01:15      37950 LICENSE
-a---        14.05.2009     01:15        556 NOTICE
-a---        14.05.2009     01:15       7317 RELEASE-NOTES
-a---        14.05.2009     01:15       6368 RUNNING.txt


PS D:\dev\java\tomcat> cd .\wtpwebapps
PS D:\dev\java\tomcat\wtpwebapps> pwd

Path
----
D:\dev\java\tomcat\wtpwebapps


PS D:\dev\java\tomcat\wtpwebapps> dir


    Verzeichnis: D:\dev\java\tomcat\wtpwebapps


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        21.08.2009     14:27            iScrum
d----        21.08.2009     14:21            ROOT


PS D:\dev\java\tomcat\wtpwebapps> cd .\iScrum
PS D:\dev\java\tomcat\wtpwebapps\iScrum> ls


    Verzeichnis: D:\dev\java\tomcat\wtpwebapps\iScrum


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        21.08.2009     14:27            images
d----        21.08.2009     14:27            META-INF
d----        21.08.2009     14:27            pages
d----        21.08.2009     14:27            style
d----        21.08.2009     14:27            WEB-INF
-a---        20.08.2009     15:39         97 index.jsp


PS D:\dev\java\tomcat\wtpwebapps\iScrum> cd .\WEB-INF
PS D:\dev\java\tomcat\wtpwebapps\iScrum\WEB-INF> ls


    Verzeichnis: D:\dev\java\tomcat\wtpwebapps\iScrum\WEB-INF


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        21.08.2009     14:27            classes
d----        21.08.2009     14:27            config
d----        21.08.2009     14:27            lib
-a---        21.08.2009     00:44       1292 faces-config.xml
-a---        20.08.2009     18:13       3668 web.xml


PS D:\dev\java\tomcat\wtpwebapps\iScrum\WEB-INF> pwd

Path
----
D:\dev\java\tomcat\wtpwebapps\iScrum\WEB-INF
 
Zuletzt bearbeitet:
Das cygwin ls unter winxp liefert Datei- und Verzeichnissrechte:
Code:
-rwxrwx---+   1 Administratoren SYSTEM            0 Mar  5  2008 AUTOEXEC.BAT
-rwxrwx---+   1 Administratoren SYSTEM            0 Mar  5  2008 CONFIG.SYS
drwxrwx---+   2 Administratoren SYSTEM            0 Aug 21 10:10 Config.Msi
drwxrwxrwx+   3         Kein              0 Mar 11  2008 DB2
drwxrwxrwx+   3         Kein              0 Mar  5  2008 DB2CTLSV
drwxrwxr-x+   9 Administratoren SYSTEM            0 Aug 25  2008 Dokumente und Einstellungen

Gibt es unter Windows 7 evtl ein Securitykonzept ähnlich wie in unix, dass verhindert, dass der javaprozess das Verzeichniss findet? Ansonsten bin ich auch etwas ratlos.
 
Oh mein Gott. Ich hab soeben den Fehler gefunden. Ich hab lediglich wieder mal zu schlampig gearbeitet.
Man beachte den Pfad: "oConfig.getServletContext().getRealPath(File.separator) + "WEB_INF/config";"
WEB_INF gibts natürlich nicht. Geändert auf WEB-INF funktioniert alles.
 

Neue Beiträge

Zurück