2011-02-17 69 views
0

有誰知道在Eclipse中運行的Tomcat是否真正使用<tomcat>\bin\目錄,當您將服務器配置爲在Eclipse中使用本地Tomcat安裝(服務器視圖)時?如何在eclipse中運行時訪問<tomcat> bin *。屬性?

例如:我使用的是同事罐子,隨後要求X.properties文件。我已被指示將該屬性文件放入<tomcat>\bin\目錄中。這有點怪我,但失敗行很簡單:

InputStream in = new FileInputStream("X.properties"); 

無論如何,我敢肯定editing any of the Server config文件不會幫我,雖然我接受任何建議。或者也許我的啓動配置中有一些東西可以更改?

enter image description here

不管是什麼,我得到以下堆棧跟蹤:

java.io.FileNotFoundException: X.properties (The system cannot find the file specified) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(FileInputStream.java:106) 
    at java.io.FileInputStream.<init>(FileInputStream.java:66) 
    at com.mycompany.myteam.colleaguesproject.colleaguesservlet.init(colleaguesservlet.java:93) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:212) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:448) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) 

任何幫助,不勝感激! :-)

回答

1

Java將您啓動的目錄指定爲其「工作目錄」,並且任何相對路徑都與該目錄相關。在這種情況下,這是Tomcat的bin目錄,其中包含Tomcat的啓動腳本。

您應該將屬性文件放在C:\ apache-tomcat-5.5.25 \ bin中,以使其工作,儘管對於java屬性文件這不是一個好的做法。從Java的類路徑中讀取它們是標準的,並且更加靈活。

+0

非常感謝您對此的幫助,您的答案與@Ratna Dinakar(下方)結合在一起,絕對有助於我:)非常感謝。當然,解決一個問題導致下一個... 爲什麼我的CLASSPATH在eclipse外部運行時會包含像X.properties(根據環境變量)的內容,但是在eclipse中,X.properties不會被讀取從CLASSPATH環境變量? – blong 2011-02-23 13:24:08

1

我完全同意mblinn!

Eclipse創建一個tomcat服務器的本地實例,爲此eclipse.exe是主應用程序。

嘗試將您的X.properties文件放在eclipse根文件夾中。