2014-02-13 2 views
2

Я новичок в весеннем каркасе и опробован простой пример того же самого.Весна: класс бобов не распознается весной и бросается ClassNotFoundException

У меня есть класс bean под названием «Треугольник» в моем пакете com.xyz.model и один основной класс DrawingApp в моем пакете com.xyz.DrawingApp.

Вот мой spring.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="triangle" class="com.xyz.model.Triangle"> 
</bean> 

</beans> 

Triangle.java

package com.xyz.model; 

public class Triangle { 
public void draw() { 
    System.out.println("Triangle drawn"); 
} 
} 

DrawingApp.java

ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); 
Triangle triangle = (Triangle)context.getBean("triangle"); 
triangle.draw(); 

Я включил эти банки:

org.springframework.aop-3.1.2.RELEASE.jar 
org.springframework.asm-3.1.2.RELEASE.jar 
org.springframework.aspects-3.1.2.RELEASE.jar 
org.springframework.beans-3.1.2.RELEASE.jar 
org.springframework.context.support-3.1.2.RELEASE.jar 
org.springframework.context-3.1.2.RELEASE.jar 
org.springframework.core-3.1.2.RELEASE.jar 
org.springframework.expression-3.1.2.RELEASE.jar 
org.springframework.instrument.tomcat-3.1.2.RELEASE.jar 
org.springframework.instrument-3.1.2.RELEASE.jar 
org.springframework.jdbc-3.1.2.RELEASE.jar 
org.springframework.jms-3.1.2.RELEASE.jar 
org.springframework.orm-3.1.2.RELEASE.jar 
org.springframework.oxm-3.1.2.RELEASE.jar 
org.springframework.test-3.1.2.RELEASE.jar 
org.springframework.transaction-3.1.2.RELEASE.jar 
org.springframework.web.portlet-3.1.2.RELEASE.jar 
org.springframework.web.servlet-3.1.2.RELEASE.jar 
org.springframework.web.struts-3.1.2.RELEASE.jar 
org.springframework.web-3.1.2.RELEASE.jar 

commons-logging-1.1.3.jar 
commons-logging-1.1.3-javadoc.jar 
commons-logging-1.1.3-sources.jar 
commons-logging-1.1.3-tests.jar 
commons-logging-1.1.3-test-sources.jar 
commons-logging-adapters-1.1.3.jar 
commons-logging-api-1.1.3.jar 
commons-logging-tests.jar 

Мой класс и файл XML позиция позиция является:

Triangle class is in this path -- com.xyz.model - SpringBeanFactory/src 
DrawingApp class is in this path -- com.xyz.DrawingApp - SpringBeanFactory/src 
spring.xml - SpringBeanFactory/src 

Я получаю это исключение:

Exception in thread "main" org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.xyz.model.Triangle] for bean with name 'triangle' defined in class path resource [spring.xml]; nested exception is java.lang.ClassNotFoundException: com.xyz.model.Triangle 
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1262) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1331) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:897) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:590) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at com.fulcum.DrawingApp.DrawingApp.main(DrawingApp.java:31) 
Caused by: java.lang.ClassNotFoundException: com.xyz.model.Triangle 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:258) 
    at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:417) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1283) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1254) 
    ... 9 more 

Может кто-нибудь поможет мне решить мою проблему?

+0

Извините .. я не поместил свое исключение ранее .. теперь отредактировал вопрос..Пожалуйста, смотрите. – xyz

+1

Как вы компилируете и запускаете свою программу? Ваш класс 'Triangle' не находится в пути к классу. –

+0

Вы разместили свою папку 'spring.xml' внутри src, а не в какой-либо другой? –

ответ

0

@xyz: заменить этот кусок кода в файле spring.xml:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 



    <bean id="triangle" class="com.xyz.model.Triangle"> 
    </bean> 

</beans> 

, то дайте мне знать результат.

+1

этот ответ кажется моим последним комментарием выше .. –

+0

НЕТ удачи .. все бросил исключение :( – xyz

+0

@xyz вы пробовали, который я предлагаю вам? –

0

В проекта структура была бы выглядит как

enter image description here

DrawingApp.java:

package com.xyz.DrawingApp; 

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

import com.xyz.model.Triangle; 

public class DrawingApp { 

    public static void main(String[] args) { 
     ApplicationContext context=new ClassPathXmlApplicationContext("spring.xml"); 
     Triangle triangle = (Triangle) context.getBean("triangle"); 
     triangle.draw(); 
    } 

} 

Triangle.java:

package com.xyz.model; 

public class Triangle { 

    public void draw() { 
     System.out.println(" Triangle drawn."); 
    } 

} 

spring.xml:

<?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" 
     "http://WWW.springframework.org/dtd/spring-beans-2.0.dtd"> 

    <beans> 
     <bean id="triangle" class="com.xyz.model.Triangle" /> 
    </beans> 

Он работает хорошо.

+0

Запустите проект из файла DrawingApp.java. –

+0

эй все так же. Но все-таки почему он не работает? Может быть проблема из-за файлов jar? Можете ли вы поделиться файлами jar или ссылкой, с которой вы работаете? Загрузите его? – xyz

+0

Вы можете найти все [файл весеннего jar по этой ссылке] (http://stackoverflow.com/questions/19124445/how-to-download-spring-framework-zip-file/21302118#21302118). Там вы может видеть мой ответ. –

0

Я столкнулся с одной и той же проблемой почти с одним и тем же кодом (Java Brains ??), но я помнил, что я неправильно назвал имя класса Triangle, поэтому я реорганизовал его на правильную орфографию и столкнулся с вашей проблемой ,

Я отбросил все это и перестроил проект с нуля, и на этот раз он сработал.

Возможно, это связано с повреждением файлов классов, поэтому вы можете попробовать удалить все в папке bin и попробовать снова запустить.

Смежные вопросы