0

私はいくつかの検索を行いましたが、何が問題なのかを見つけることができませんでした。問題が ClassNotFoundException に起因することは承知していますが、解決できません。

エラー: org.springframework.beans.factory.BeanCreationException: 'applicationController' という名前の Bean の作成中にエラーが発生しました: 自動配線された依存関係の注入に失敗しました。ネストされた例外は org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.it.service.applicationService com.it.controller.applicationController.applicationService; です。ネストされた例外は org.springframework.beans.factory.CannotLoadBeanClassException: ServletContext リソース [/WEB-INF/spring-servlet.xml] で定義された名前が「sessionFactory」の Bean のクラス [org.springframework.orm.hibernate4.LocalSessionFactoryBean] が見つかりません; ネストされた例外は java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean です

原因: org.eclipse.jetty.servlet.ServletHolder$1: org.springframework.beans.factory.BeanCreationException: 'applicationController' という名前の Bean の作成中にエラーが発生しました: 自動配線された依存関係の注入に失敗しました。ネストされた例外は org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.it.service.applicationService com.it.controller.applicationController.applicationService; です。ネストされた例外は org.springframework.beans.factory.CannotLoadBeanClassException: ServletContext リソース [/WEB-INF/spring-servlet.xml] で定義された名前が「sessionFactory」の Bean のクラス [org.springframework.orm.hibernate4.LocalSessionFactoryBean] が見つかりません; ネストされた例外は java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean です

私のconf:バージョン:3.2.0.RELEASE

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
        <exclusions>
            <exclusion>
                <artifactId>commons-logging</artifactId>
                <groupId>commons-logging</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.0.Beta1</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.5.6-Final</version>
    </dependency>

必要なものはすべて自動配線しました(まあ、そう思います)。ここに私のコードがあります:

DAO クラス:

    package com.it.dao;

    import java.util.List;

    import org.hibernate.SessionFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Repository;

    import com.it.model.application;


    @Repository("applicationDao")
    public class applicationDaoImpl implements applicationDao {

@Autowired
private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory) {
    this.sessionFactory = sessionFactory;
}


public List<application> listeAll() {
    return sessionFactory.getCurrentSession()
            .createQuery("from application").list();
}

    }

サービス クラス :

    package com.it.service;

    import java.util.List;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;

    import com.it.dao.applicationDao;
    import com.it.model.application;

    @Service("applicationService")
    public class applicationServiceImpl implements applicationService {

@Autowired
private applicationDao applicationDao;


@Transactional
public List<application> listeAll() {
    return applicationDao.listeAll();
}

    }

コントローラ クラス:

package com.it.controller;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.it.model.application;
import com.it.service.applicationService;

@Controller
@Configuration
@ComponentScan("com.it.service")
public class applicationController {

@Autowired
private applicationService applicationService;

@RequestMapping("/index")
public String listContacts(Map<String, Object> map) {

    map.put("application", new application());
    map.put("applicationList", applicationService.listeAll());

    return "application";
}
}

spring-servlet.xml :

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
    p:packagesToScan="com.it" 
    p:dataSource-ref="dataSource"
    />


<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory"/>

<!-- Translates Hibernate exceptions to Spring Data Access Exceptions -->
<bean class="org.springframework.orm.hibernate4.HibernateExceptionTranslator"/>

ここで、localSessionFactoryBean、annotationfactorybean、hibernate 3または4など、いくつか試してみましたが、どれも機能していません:(

私も持っています:

<context:component-scan base-package="com.it.controller" />
<context:component-scan base-package="com.it.dao" />

サービスは注釈によってスキャンする必要がありますが、xmlでもスキャンを宣言しようとしました。

誰かが私を助けることができれば、それは素晴らしいことです:)事前にありがとう、Aure

4

2 に答える 2

1

spring-ormMaven 依存関係に追加する必要があります。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>${spring.version}</version>
</dependency>

Maven の依存関係がデプロイされていることを確認し、この回答の最初のイメージを確認してください: Eclipse でプロジェクトを maven プロジェクトに変換した後、サーブレット パッケージがインポートされない

于 2013-05-07T09:41:10.037 に答える