У меня есть веб-проект Eclipse Dynami c.
Мой файл определения Spring-контекста "spring-context. xml" имеет значение WebContent/WEB-INF/spring-context.xml
.
1) Почему код ниже работает нормально?
2) А что такое ClassPath в моем случае?
ApplicationContext context = new ClassPathXmlApplicationContext("mybeans-definition.xml");
Я понимаю, что такое classpath для JVM (где искать файлы .class + .jar) или javac (где искать файлы .jar).
Но Что такое ClassPath моего проекта веб-приложения (и создаваемый в результате WAR), который он генерирует?
Кроме того, насколько я понимаю, - только /WEB-INF/classes
+ /WEB-INF/lib
находятся "на пути к классам" (??? - потому что папка sr c находится в Eclipse Build Path, а папка sr c сопоставлена с {war_jarRoot}/WEB-INF/classes
в меню Deployment Assembly) - в этом случае я нужно привести мой аргумент относительно /WEB-INF/classes
- то есть new ClassPathXmlApplicationContext("../mybeans-definition.xml");
- это тоже работает, но это не нужно. Это выглядит так, как будто WEB-INF
сама папка находится в пути к классам!
"/mybeans-definition.xml"
- также ОК "../mybeans-definition.xml"
- OK "mybeans-definition.xml"
- OK "WEB-INF/mybeans-definition.xml"
- FileNotFoundException "/WEB-INF/mybeans-definition.xml"
- FileNotFoundException: ресурс пути к классу [WEB-INF/mybeans-definition.xml]
не может быть открыт, поскольку он не существует
точно такие же результаты с префиксом classpath:
(как и ожидалось - должны быть такими же):
"classpath:/mybeans-definition.xml"
- также ОК "classpath:../mybeans-definition.xml"
- ОК "classpath:mybeans-definition.xml"
- ОК "classpath:WEB-INF/mybeans-definition.xml"
- FileNotFoundException "classpath:/WEB-INF/mybeans-definition.xml"
- FileNotFoundException
Неожиданные (для меня) результаты с префиксом file:
:
"file:/WebContent/WEB-INF/mybeans-definition.xml"
- FileNotFoundException (в то время как WebContent находится в root папки моего проекта Eclipse, на одном уровне с папкой sr c. В отличие от sr c, WebContent не добавляется в Путь сборки, как видно в меню «Настроить путь сборки» - но это не имеет значения - я могу использовать любое местоположение, используя абсолютный путь из (проекта) root или относительный путь из текущего местоположения файла, не так ли?) "file:../../../../WebContent/WEB-INF/mybeans-definition.xml"
- FileNotFoundException "file:/../../../../WebContent/WEB-INF/mybeans-definition.xml"
- FileNotFoundException (я пытался go с {projectRoot}/src/org.my.packagename/FileWithNewClassPathXmlApplicationContext
до WebContent/WEB-INF/
)
У меня нет дополнительной конфигурации.
mybeans-definition.xml :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="my" class="com.my.MyBean1" ></bean>
</beans>
Этот ничего не прояснил.