Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring/NetBeans-java.io.FileNotFoundException:无法打开类路径资源[beans.xml],因为它不存在_Java_Xml_Spring_Netbeans - Fatal编程技术网

Spring/NetBeans-java.io.FileNotFoundException:无法打开类路径资源[beans.xml],因为它不存在

Spring/NetBeans-java.io.FileNotFoundException:无法打开类路径资源[beans.xml],因为它不存在,java,xml,spring,netbeans,Java,Xml,Spring,Netbeans,每当我尝试运行java项目时,我都会收到一个文件NotFound异常,表示找不到beans.xml。我正在使用NetBeans,并且读到我可能需要将类路径设置为正确的目录,否则项目将无法正确运行(Eclipse会自动执行此操作(?)。使用相同的库运行相同的程序可以在Eclipse中使用。我不知道我的问题是与Spring相关还是与类路径相关(但我认为这是一个类路径问题) MainApp.java package hello; import org.springframework.context.

每当我尝试运行java项目时,我都会收到一个文件NotFound异常,表示找不到beans.xml。我正在使用NetBeans,并且读到我可能需要将类路径设置为正确的目录,否则项目将无法正确运行(Eclipse会自动执行此操作(?)。使用相同的库运行相同的程序可以在Eclipse中使用。我不知道我的问题是与Spring相关还是与类路径相关(但我认为这是一个类路径问题)

MainApp.java

package hello;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainApp {
    public static void main(String[] args) {
        AbstractApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

        HelloWorld hello = (HelloWorld) context.getBean("helloWorld");
                hello.getMessage();
    }
}
HelloWorld.java

package hello;

public class HelloWorld {
        private String message;

        public void setMessage(String message) {
                this.message = message;
        }

        public void getMessage() {
                System.out.println("Message: " + message);
        }
}
beans.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-3.0.xsd">

   <bean id = "helloWorld" class = "hello.HelloWorld">
      <property name = "message" value = "Hello World!"/>
   </bean>

</beans>
而不仅仅是:

AbstractApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

您的
beans.xml
hello
包中,因此您应该使用以下方法引用它:

AbstractApplicationContext context = new ClassPathXmlApplicationContext("hello/beans.xml");

注意:更好的做法是将其放在
资源
目录中。

资源加载程序有四种加载资源的方法 (类路径、http、文件、无(取决于应用程序上下文))。
您可以进一步了解它

您的
bean.xml
资源在
/hello
@SotiriosDelimanolis中。好的,它应该放在哪里?它可以放在您想要的类路径上的任何地方。当您将它与
ClassPathXmlApplicationContext
一起使用时,您只需正确定位它。
AbstractApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
AbstractApplicationContext context = new ClassPathXmlApplicationContext("hello/beans.xml");