2016-09-06 25 views
0

私は簡単な問題に直面しており、助けを求めています。org.springframework.beans.factory.CannotLoadBeanClassException:クラスが見つかりません

はここで例外メッセージだ:

Exception encountered during context initialization - cancelling refresh attempt: 

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot 
find class [dao.ProduitImpl] for bean with name 'sybaway' defined in 
ServletContext resource [/WEB-INF/spring-beans.xml]; nested exception 
is java.lang.ClassNotFoundException: dao.ProduitImpl 


GRAVE: Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) org.springframework.web.context.ContextLoaderListener 
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [dao.ProduitImpl] for bean with name 'sybaway' defined in ServletContext resource [/WEB-INF/spring-beans.xml]; nested exception is java.lang.ClassNotFoundException: dao.ProduitImpl 
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1208) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:568) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1277) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:844) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:539) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:842) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:416) 
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:192) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5068) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: dao.ProduitImpl 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1858) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701) 
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:258) 
    at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1229) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1200) 
    ... 18 more 

は、ここに工場です:

package dao; 

import java.util.ArrayList; 
import java.util.List; 

public class ProduitImpl implements ProduitDAO{ 

    private List<Produit> produits=new ArrayList<Produit>(); 

    public List<Produit> getProduits() { 
     return produits; 
    } 

    public void setProduits(List<Produit> produits) { 
     this.produits = produits; 
    } 

    public void init(){ 
     System.out.println("www.sybaway.com"); 
    } 

    @Override 
    public void addProduit(Produit p) { 
     p.setIdProduit(new Long(produits.size()+1)); 
     produits.add(p); 
    } 

    @Override 
    public void deleteProduit(Long id) { 
     produits.remove(getProduitById(id)); 
    } 

    @Override 
    public Produit getProduitById(Long id) { 
     Produit produit=null; 
     for(Produit p:produits){ 
      if(p.getIdProduit().equals(id)) 
       produit=p; 
       break; 
     } 
     return produit; 
    } 

    @Override 
    public List<Produit> getAllProduit() { 
     return produits; 
    } 

    @Override 
    public void updateProduit(Produit p) { 

    } 

} 

は、ここに私のProduitImplMetier.javaです:

package service; 

    import java.util.List; 

    import dao.Produit; 
    import dao.ProduitDAO; 

public class ProduitImplMetier implements ProduitMetier { 


    private ProduitDAO dao; 

    public void setDao(ProduitDAO dao) { 
     this.dao = dao; 
    } 

    @Override 
    public void addProduit(Produit p) { 
     dao.addProduit(p); 
    } 

    @Override 
    public void deleteProduit(Long id) { 
     dao.deleteProduit(id); 
    } 

    @Override 
    public List<Produit> getAllProduit() { 
     return dao.getAllProduit(); 
    } 

    @Override 
    public Produit getProduitById(Long id) { 
     return dao.getProduitById(id); 
    } 

} 

は、ここに私の春-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" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-2.5.xsd"> 


<bean id="sybaway" init-method="init" class="dao.ProduitImpl" ></bean> 

<bean id="sybawayServices" class="service.ProduitImplMetier" > 
    <property name="dao" ref="sybaway" ></property> 
</bean> 

</beans> 
+0

spring-beans.xmlを共有できますか? –

+0

私のspring-beans.xmlを共有しました – khalid

+0

Strange。あなたのアプリケーションをきれいにして再構築できますか? – Jens

答えて

0

例外は、何が欠落しているかを明確に示します。

あなたのJava Virtual Machine(JVM)が、あなたのCLASSPATHにあなたのDAOクラスProduitImpl.classを見つけることができないことを伝えます。

CLASSPATHは、JVMが.classファイルをJVMメモリにロードし、それらのコードを実行するためにJVMが探すファイルの場所(またはフォルダ)です。

ファイル.javaからファイル.classを作成するには、.javaファイルをコンパイルする必要があります。

これはMavenのようなビルドツールで簡単に行うことができます。単一のMavenコマンドで

:あなたは上記を達成することができます

mvn compile 

、Mavenは単に同じように、あなたの.javaファイルを取る:

ProduitImpl.java

そして、それから作成されますProduitImpl.classファイル。

プラスMavenはその.classファイルをCLASSPATHに置きます。

+0

ディレクトリbuild/classes/daoに既にProduitImpl.classファイルがあります – khalid

+0

JVMが別の不正なシステムの場所からCLASSPATHを読み込もうとします。あなたの出力フォルダがどこにあるのかを調べてみてください。Eclipseエディタで_italic_ Java Build Path_italic_の下で調べることができます。これは私の選択であるMavenビルドツールにチャンスを与えて、それはあなたのために簡単になります。 –

関連する問題