Ven*_*tta 5 java spring spring-bean
对不起,这可能太模糊了,而且还有一个问题.我正在尝试用大量的弹簧布线来创建一个巨大的遗留项目,我收到了这个错误:
bizzare的事情是这个错误没告诉我哪个xml,哪个bean id,发生错误.
我当然不希望有人指出我在哪里修复.. 我的问题是,Spring专家如何调试这种无法提供信息的错误消息?
是的,我明白它必须是我的一个错误设置的xml bean.但是不应该错误消息让我更容易找出哪个bean?
任何建议都将非常感激.
00:09:00.640 [main] ERROR com.xxxx.yyyy.zzzzzz.AppMain - Failed to initialize BLAH BLAH BLAH
java.lang.IllegalStateException: No bean class specified on bean definition
at org.springframework.beans.factory.support.AbstractBeanDefinition.getBeanClass(AbstractBeanDefinition.java:381) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:154) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
Run Code Online (Sandbox Code Playgroud)
它是通过以下代码抛出的.init()方法接受spring xml文件并进行连接.
try {
AppMain.init(args_);
} catch (Exception e) {
_LOGGER.error("Failed to initialize BLAH BLAH BLAH", e);
System.exit(-1);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,Spring专家如何调试这种无信息的错误消息?
我认为错误消息信息非常丰富。它表明某些东西试图将您的应用程序置于非法状态。在这个特定的示例中,您的上下文的配置方式未指定某些 bean 的类。这通常是由于忘记将class属性放入声明中而导致的<bean>。
BeanDefinitionSpring为上下文中的每个 bean创建对象。这些可以来自您的<bean>声明或其他 XML 元素或 Java 配置元素(来自@Configuration、@Component等)。Spring 中涉及的几乎所有内容ApplicationContext都是 bean。
您可以非常确定 Spring 的基础设施 bean 不应该为此负责。Spring 是一个成熟的框架,在每次发布之前都投入了大量的工作和测试。最明显的替代方案是在代码中的某个地方您忘记指定class. 例如,您是否尝试创建一个abstract <bean>但忘记添加abstract="true"?您是否注册了 aBeanDefinitionParser并创建了BeanDefinition没有 a 的 s class?您是否创建BeanDefinitionPostProcessor和删除了BeanDefinition class值?
这些就是我要开始的事情。
| 归档时间: |
|
| 查看次数: |
3250 次 |
| 最近记录: |