Java NoSuchBeanDefinitionException:没有名为';三角形';定义

Java NoSuchBeanDefinitionException:没有名为';三角形';定义,java,spring,Java,Spring,我是春天的新手。我越来越 NoSuchBeanDefinitionException:未定义名为“triangle”的bean 使用一个简单的java应用程序 我得到以下错误消息 Jul 20, 2014 7:44:44 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh INFO: Refreshing org.springframework.context.support.Class

我是春天的新手。我越来越

NoSuchBeanDefinitionException:未定义名为“triangle”的bean

使用一个简单的java应用程序

我得到以下错误消息

Jul 20, 2014 7:44:44 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@383118: startup date [Sun Jul 20 07:44:44 EDT 2014]; root of context hierarchy
Jul 20, 2014 7:44:44 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@47eaec: defining beans []; root of factory hierarchy
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'Triangle' is defined
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:570)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1108)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:278)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1117)
    at com.springDemo.main.DrawingApp.main(DrawingApp.java:22)
my contextBean.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="triangle"  class="com.springDemo.main.Triangle1" >
        <property name="type" value="Equilateral" /> 
    </bean >

</beans>

类路径定义中有两个
。尝试在以下位置删除:

"classpath:*/com/springDemo/main/contextBean.xml"

Spring可能没有加载
contextBean.xml
。尝试直接加载上下文文件,即不使用通配符和前面提到的
字符

context = 
   new ClassPathXmlApplicationContext("/com/springDemo/main/contextBean.xml" );
您已经在使用
ClassPathXmlApplicationContext
查找类路径,因此不需要添加
classpath::*

只需删除它,就可以看到您的问题将消失

ctx = new ClassPathXmlApplicationContext("com/springDemo/main/contextBean.xml");

您可以尝试使用
FileSystemXmlApplicationContext
以及必须使用
classpath:

ctx = new FileSystemXmlApplicationContext("classpath:com/springDemo/main/contextBean.xml");

如果找不到文件,则会给出
FileNotFoundException
您是否测试过它。它给了我
类路径资源[CLANSATH:]无法解析为URL,因为它不存在
不,这是猜测。你能展示你的项目结构吗?从代码中可以清楚地看到配置和三角形1的存储位置。看看我的帖子。你不认为你已经编辑了你的帖子以匹配我的帖子吗。虽然我已经删除了
类路径:
,这不是这里的问题-
ClassPathXmlApplicationContext
将使用或不使用classpath前缀。什么是一个问题是双:和*导致路径无效:)我在测试后发布了我的答案。我不使用classpath.Thx,伙计们:-看起来像是新手错误直接加载context.xml。ClassPathXmlApplicationContext(“/com/springDemo/main/contextBean.xml”);如果查看您的代码,我认为没有什么错,除了我不会放classpath::但是classpath:。我认为您可能在类路径中加载了两个contextBean.xml。您发布的不是jvm中首先加载的。这是很常见的错误。如果您可以共享您的项目(或者至少是您的类路径),那么我们就可以知道真正的原因。另外要提到的是类路径:*将从所有依赖项中搜索。classpath:将只从项目中搜索,而不从依赖项中搜索。
ctx = new FileSystemXmlApplicationContext("classpath:com/springDemo/main/contextBean.xml");