Как получить доступ к свойствам <tomcat>\ bin \ *. При запуске из затмения? - PullRequest
0 голосов
/ 18 февраля 2011

Кто-нибудь знает, действительно ли Tomcat, работающий внутри Eclipse, использует каталог <tomcat>\bin\, когда вы настроили свой сервер для использования локальной установки Tomcat (представление сервера) внутри Eclipse?

Например: я использую флягу коллег, для которой впоследствии требуется файл X.properties . Я получил указание поместить этот файл свойств в каталог <tomcat>\bin\. Это странно для меня, но строка, которая терпит неудачу, просто:

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

Во всяком случае, я почти уверен, редактирование любого из файлов конфигурации сервера мне не поможет, хотя я открыт для любых предложений. Или, может быть, в моей конфигурации запуска (ниже) есть что-то, что я могу изменить?

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)

Любая помощь очень ценится! : -)

Ответы [ 2 ]

1 голос
/ 18 февраля 2011

Я полностью согласен с mblinn!

Eclipse создает локальный экземпляр сервера tomcat, для которого eclipse.exe является основным приложением.

Попробуйте поместить файл X.properties в корневую папку Eclipse.

1 голос
/ 18 февраля 2011

Java определяет каталог, из которого вы его запустили, как «рабочий каталог», и любые относительные пути относятся к этому каталогу. В данном случае это каталог bin Tomcat, содержащий сценарий запуска Tomcat.

Вы должны поместить файл свойств в C: \ apache-tomcat-5.5.25 \ bin, чтобы это работало, хотя это не очень хорошая практика для файлов свойств java. Чтение их вне пути к классам Java является стандартным и намного более гибким.

...