2012-08-15 55 views
1

我有一个静态主指向应用程序上下文文件。在项目成为maven项目之前,我在Netbeans的“”(即根目录)中保留了“applicationContex.xml”。现在,当我运行我的代码时,显示错误。最新Mavenized项目 - 找不到类路径

有人能告诉我我的应用程序上下文文件的正确位置吗?

@Service 
public class TestDriver { 
    public static void main(String[] args) { 
     ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 

错误:

INFO: Loading XML bean definitions from class path resource [applicationContext.xml] 
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist 


Directory of C:\NetBeansProjects\prj\trunk\src\main\java 

8/15/2012 09:38 AM <DIR>   . 
8/15/2012 08:58 AM <DIR>   .. 
8/15/2012 09:38 AM    162 jcbc.properties 
8/15/2012 09:38 AM    879 log4j.properties 
8/15/2012 09:38 AM    1,691 applicationContext.xml 
       3 File(s)   2,732 bytes 

回答

0

maven约定保留XML文件src/main/resources

下从SpringSource

src/main/java 

包含为您的项目

Java源代码
src/main/resources 

包含任何类路径中相对资源为您的项目(例如,Spring应用程序上下文.xml文件)

src/test/java  

包含你的测试类的Java源代码。该目录不会包含在最终版本中。这里的所有测试将被编译并且所有测试将被运行。如果测试失败,则会中止构建。

src/test/resources 

此目录将不会包含在最终的Java版本中。该文件夹包含您的测试代码的任何类路径相关资源(如Spring应用程序上下文.xml文件)。

+0

这是非常有帮助的。你知道我应该把jdbc.properties放在哪里吗?我把它放在资源目录中,但它没有在那里看到它。 – EdgeCase 2012-08-15 15:42:14

+0

src/main/config似乎是jdbc.properties的地方。 http://stackoverflow.com/questions/2525028/referencing-a-file-via-classpath-in-spring-context?lq=1 – 2012-08-15 16:27:15

+0

@BuckTurgidson做到了这一点? – 2012-08-16 17:20:23

0

你需要把非Java文件中:

C:\NetBeansProjects\prj\trunk\src\main\resources 
+0

这是推荐的,但不是必需的。 – yorkw 2012-08-15 22:54:16