Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring+GWT未满足的费用异常_Java_Spring_Hibernate_Gwt - Fatal编程技术网

Java Spring+GWT未满足的费用异常

Java Spring+GWT未满足的费用异常,java,spring,hibernate,gwt,Java,Spring,Hibernate,Gwt,我查看了几乎所有关于org.springframework.beans.factory.UnsatisfiedDependencyException的主题,但我找不到解决问题的方法。我的服务如下所示: @Service public class PacientService { @Resource private PacientDAO dao; @Resource private PacientModelTransformer transformer;

我查看了几乎所有关于org.springframework.beans.factory.UnsatisfiedDependencyException的主题,但我找不到解决问题的方法。我的服务如下所示:

    @Service
public class PacientService {

    @Resource
    private PacientDAO dao;

    @Resource
    private PacientModelTransformer transformer;

    public PacientService() {

    }

    @Autowired
    public PacientService(PacientDAO dao, PacientModelTransformer transformer) {
        this.dao = dao;
        this.transformer = transformer;
    }

    public PacientDTO getPacientById(Long pacientId) {
        return transformer.toDTO(dao.readByPrimaryKey(pacientId));
    }
}    


<context:annotation-config />
<context:component-scan base-package="pl.arprojects.dietetyk" />
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/d2" />
    <property name="username" value="root" />
    <property name="password" value="" />
</bean>
<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="showSql" value="true" />
            <property name="generateDdl" value="true" />
            <property name="database" value="MYSQL" />
        </bean>
    </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean
    class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

<bean
    class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

<hades:dao-config base-package="pl.arprojects.dietetyk.api.domian" />
@Repository
public interface PacientDAO extends GenericDao<Pacient, Long> {

     @Query("Select * from dietetyk_pacients where name = :name")
     public Pacient getByName(@Param("name") String name);

     @Query("")
     public void deleteByPrimaryKey(@Param("id") long id);
}
这是我的applicationContext.xml。我真的不知道为什么会有这样的例外:

    @Service
public class PacientService {

    @Resource
    private PacientDAO dao;

    @Resource
    private PacientModelTransformer transformer;

    public PacientService() {

    }

    @Autowired
    public PacientService(PacientDAO dao, PacientModelTransformer transformer) {
        this.dao = dao;
        this.transformer = transformer;
    }

    public PacientDTO getPacientById(Long pacientId) {
        return transformer.toDTO(dao.readByPrimaryKey(pacientId));
    }
}    


<context:annotation-config />
<context:component-scan base-package="pl.arprojects.dietetyk" />
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/d2" />
    <property name="username" value="root" />
    <property name="password" value="" />
</bean>
<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="showSql" value="true" />
            <property name="generateDdl" value="true" />
            <property name="database" value="MYSQL" />
        </bean>
    </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean
    class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

<bean
    class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

<hades:dao-config base-package="pl.arprojects.dietetyk.api.domian" />
@Repository
public interface PacientDAO extends GenericDao<Pacient, Long> {

     @Query("Select * from dietetyk_pacients where name = :name")
     public Pacient getByName(@Param("name") String name);

     @Query("")
     public void deleteByPrimaryKey(@Param("id") long id);
}
org.springframework.beans.factory.UnsatifiedDependencyException:创建名为“pacientService”的bean时出错,该名称在文件[D:\Dietyk\Dietyk\target\Dietyk-1.0.0-SNAPSHOT\WEB-INF\classes\pl\arprojects\Dietyk\server\service\pacientService.class]中定义:未满足的依赖项通过索引为0的构造函数参数表示[pl.arprojects.DIETEYK.api.dao.PacientDAO]::未找到依赖项类型为[pl.arprojects.DIETEYK.api.dao.PacientDAO]的匹配bean:应至少有1个bean符合此依赖项的autowire候选项的条件。依赖项批注:{};嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:找不到依赖项类型为[pl.arprojects.dietyk.api.dao.PacientDAO]的匹配bean:至少需要1个符合此依赖项autowire候选项条件的bean。依赖项批注:{}

不,这个DAO没有任何子类,看起来就像这样:

    @Service
public class PacientService {

    @Resource
    private PacientDAO dao;

    @Resource
    private PacientModelTransformer transformer;

    public PacientService() {

    }

    @Autowired
    public PacientService(PacientDAO dao, PacientModelTransformer transformer) {
        this.dao = dao;
        this.transformer = transformer;
    }

    public PacientDTO getPacientById(Long pacientId) {
        return transformer.toDTO(dao.readByPrimaryKey(pacientId));
    }
}    


<context:annotation-config />
<context:component-scan base-package="pl.arprojects.dietetyk" />
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/d2" />
    <property name="username" value="root" />
    <property name="password" value="" />
</bean>
<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="showSql" value="true" />
            <property name="generateDdl" value="true" />
            <property name="database" value="MYSQL" />
        </bean>
    </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean
    class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

<bean
    class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

<hades:dao-config base-package="pl.arprojects.dietetyk.api.domian" />
@Repository
public interface PacientDAO extends GenericDao<Pacient, Long> {

     @Query("Select * from dietetyk_pacients where name = :name")
     public Pacient getByName(@Param("name") String name);

     @Query("")
     public void deleteByPrimaryKey(@Param("id") long id);
}
从Hades Synyx扩展GenericDao

<?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:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:hades="http://schemas.synyx.org/hades"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-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/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://schemas.synyx.org/hades http://schemas.synyx.org/hades/hades.xsd">
<context:annotation-config />
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="showSql" value="true" />
            <property name="generateDdl" value="true" />
            <property name="database" value="MYSQL" />
        </bean>
    </property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean
    class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean
    class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/d2" />
    <property name="username" value="root" />
    <property name="password" value="" />
</bean>
<hades:dao-config base-package="pl.arprojects.dietetyk.api.domian" />
applicationContext.xml

对所有DAO类(包括基本DAO的子类)尝试@Repository或@Component注释,而无需在注释中定义名称


依赖项是按类型解析的。

从异常中可以清楚看出,PacientDAO没有在spring上下文中加载。正如异常所说:没有匹配的bean类型[pl.arprojects.dietyk.api.dao.PacientDAO]为依赖项找到:应至少有1个bean符合此依赖项的autowire候选项的条件……我认为或会这样做。如果我错了,我应该如何将DAO加载到上下文中?尝试一下您是否使用了@Autowired for DAOs?没有。我的DAO看起来是这样的:@RepositoryPacifientDAO公共接口PacifientDAO扩展了GenericDao{@QuerySelect*来自Dietyk_pacients,其中name=:name public PacientgetByName@Paramname字符串名称,@Paramtable String table;@Query public voiddeleteByPrimaryKey@Paramidlong pacientId;}我已经尝试在DAO类上使用@Repository或@Component注释。仍然没有得到满意的DependencyException这个pacientDAO接口有任何子类并且它有注释吗?请共享一个示例代码。然后很明显没有pacientDAO类型的类。这意味着exception是可以的。创建子类以便spring可以加载它们o上下文,可以作为服务类的依赖项传递。据我所知,Hades Synyx不要求我们创建类型的类—在本例中为—PacientDAO,我们只使用此接口。我错了吗?对不起,我对Hades语法一无所知。我只知道Spring如何解析其依赖项。在服务类中使用GenericDaoFactorys在删除自动连线批注后手动解析依赖项,或使用GenericDaoSupport类代替接口。抱歉,我帮不上忙,请阅读Java文档。谢谢