Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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
找不到名为';helloworld';在类路径资源[bean.xml]中定义_Xml_Spring - Fatal编程技术网

找不到名为';helloworld';在类路径资源[bean.xml]中定义

找不到名为';helloworld';在类路径资源[bean.xml]中定义,xml,spring,Xml,Spring,我刚刚开始使用spring框架,并尝试了本教程中的“Hello world”教程。 我有Mainapp.Javaas package com.springdemo; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public s

我刚刚开始使用spring框架,并尝试了本教程中的“Hello world”教程。 我有Mainapp.Javaas

package com.springdemo;

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

public class MainApp {
    public static void main(String[] args) {
        ApplicationContext context =new ClassPathXmlApplicationContext("bean.xml");
        Hello_World obj = (Hello_World)context.getBean("helloworld");
        obj.getMessage();
        }
}
Hello\u World.java

package com.springdemo;

public class Hello_World {

    private String message;
    public void setMessage(String message){
    this.message = message;
    }
    public void getMessage(){
    System.out.println("Your Message : " + message);
    }
}
bean.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-2.0.xsd">
<bean id="helloworld" class="com.springdemo">
<property name="message" value="Hello World!"/>
</bean>
</beans>

错误

Exception in thread "main" org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.springdemo] for bean with name 'helloworld' defined in class path resource [bean.xml]; nested exception is java.lang.ClassNotFoundException: com.springdemo
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1173)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:479)
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:787)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:393)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:123)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:66)
    at com.springdemo.MainApp.main(MainApp.java:8)
Caused by: java.lang.ClassNotFoundException: com.springdemo
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:230)
    at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:381)
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1170)
    ... 8 more
线程“main”org.springframework.beans.factory.CannotLoadBeanClassException中的异常:找不到类路径资源[bean.xml]中定义的名为“helloworld”的bean的类[com.springdemo];嵌套异常是java.lang.ClassNotFoundException:com.springdemo
位于org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1173)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:479)
位于org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:787)
位于org.springframework.beans.factory.support.DefaultListableBeanFactory.PreInstanceSingleton(DefaultListableBeanFactory.java:393)
位于org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736)
位于org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369)
位于org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:123)
位于org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:66)
位于com.springdemo.MainApp.main(MainApp.java:8)
原因:java.lang.ClassNotFoundException:com.springdemo
位于java.net.URLClassLoader$1.run(未知源)
位于java.net.URLClassLoader$1.run(未知源)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于sun.misc.Launcher$AppClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于org.springframework.util.ClassUtils.forName(ClassUtils.java:230)
位于org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:381)
位于org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1170)
... 8个以上

当然@c.p.u1已经给出了答案,您可以尝试其他方法(自动检测)

  • 删除显式bean声明

  • @Component

  • 在配置文件中使用

  • 使用


  • 我在xml文件中的类
    org.stuff.Triangle.java
    中添加了一个文件扩展名,而不是完全限定的类名

    这是我的代码的正确方式:

            <bean id="triangle" class="org.stuff.Triangle"/> 
    
    
    
    更新bean.xml


    只需确保在bean.xml中添加类位置即可 对于您的情况,Hello_World class是返回值的类,因此只需调用该类即可

    <bean id="helloworld" class="com.springdemo.Hello_World">
       <property name="message" value="Hello World!"/>
    </bean>
    

    这里也是初学者,我读了几篇文章,大约30分钟,但我使用IntelliJ而不是推荐的IDE。我在src/main/java中有Hello_World和MainApp,在src/main/resources中有bean。我最终发现这个类不需要位置前缀。我知道这与这个问题没有直接联系,但在搜索错误消息时,它是谷歌列表中的第一位

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

    在bean标记中,class参数应该包含完整的类名路径。您尚未写入类名。 而不是这个 bean id=“helloworld”class=“com.springdemo”

    写这个
    bean id=“helloworld”class=“com.springdemo.Hello\u World”

    在bean定义中缺少类名。应该是
    是。。。谢谢。
    <bean id = "helloWorld" class = "Hello_World">
        <property name = "message" value = "Hello World!"/>
    </bean>