2015-08-25 5 views
8

Ich habe die folgende Codezeile:Warum gibt ServletContext.getRealPath null auf Tomcat 8 zurück?

servletContext.getRealPath("resources/images/video_icon.png") 

Wen ich laufen Anwendung Anlegestelle mit (Maven Plugin) dieser Code Zeile corect Wert zurück.

Wenn ich Anwendung mit Tomcat 8 ausführen (auf Tomcat 7 funktioniert es) - Anwendung gibt null zurück.

Anwendungsstruktur:

enter image description here

1.How um es zu beheben?
2.Warum passiert das?

Antwort

12

nach / im Pfad Zugabe beginnt es funktioniert in beide: Steg und tomcat 8

servletContext.getRealPath("/resources/images/video_icon.png") 
+0

Der Grund ist Tomcat erfordert/am Anfang – tangobee

+0

Dank Tangobee, lassen Sie mich bitte wissen, warum Tomcat 8 tut dies oder Sie können, warum dieses Ding geändert wird. Es könnte einen Grund geben, warum ich dieses Ding untersuche. – user1061865

4

Es in Tomcat funktioniert 7, da frühere Versionen von Tomcat ohne anfänglichen / Separator erlaubt, aber Tomcat 8 erfordert / enthalten Trennzeichen am Anfang.

es hinzufügen zu beheben nur /

servletContext.getRealPath("/resources/images/video_icon.png") 
0

Danke Jungs für die Lösung aber kann jemand lassen Sie mich wissen, warum Kater 8 das tat. Es könnte einen Grund geben, wenn Tomcat 8 aktualisiert wurde, um so zu funktionieren.

Bitte lassen Sie mich wissen, wie dieses Ding einen Zweck löst.

+0

Absolut keine da sein kann. Wahrscheinlich genau wie der Code geschrieben wurde. Für einige von uns, die von A7 nach A8 fahren und entdecken, dass es mitten in der Nacht ist - eine weitere Gelegenheit, den letzten Zug zu verpassen. –