2013-02-17 87 views
1

我想在Spring + Hibernate + ZK框架中使用示例。我通过pom.xml文件打包了一个war文件。之后,当我运行on server它抛出以下异常org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义名为'itemAttrService'的bean

org.springframework.beans.factory.NoSuchBeanDefinitionException程序:没有 豆名为“itemAttrService”被定义

这里是的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.nagarro</groupId> 
    <artifactId>ZKSpringHibernateExample</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>ZKSpringHibernateExample</name> 
    <url>http://maven.apache.org</url> 

    <repositories> 
     <repository> 
      <id>java.net</id> 
      <url>http://download.java.net/maven/2/</url> 
     </repository> 
    </repositories> 
    <properties> 
     <org.springframework.version>3.0.5.RELEASE</org.springframework.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 

     <!-- Spring framework --> 

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

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

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



     <!-- MySQL database driver --> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.9</version> 
     </dependency> 

     <!-- Hibernate framework --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.6.3.Final</version> 
     </dependency> 

     <dependency> 
      <groupId>javassist</groupId> 
      <artifactId>javassist</artifactId> 
      <version>3.12.1.GA</version> 
     </dependency> 
     <!-- <dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> 
      <version>1.0.2</version> </dependency> --> 

     <!-- Hibernate library dependecy start --> 
     <dependency> 
      <groupId>dom4j</groupId> 
      <artifactId>dom4j</artifactId> 
      <version>1.6.1</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>1.1.1</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-collections</groupId> 
      <artifactId>commons-collections</artifactId> 
      <version>3.2.1</version> 
     </dependency> 

     <dependency> 
      <groupId>antlr</groupId> 
      <artifactId>antlr</artifactId> 
      <version>2.7.7</version> 
     </dependency> 
     <!-- Hibernate library dependecy end --> 

     <!-- ZK Dependency start --> 
     <dependency> 
      <groupId>org.zkoss.zk</groupId> 
      <artifactId>zkplus</artifactId> 
      <version>6.0.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.zkoss.zk</groupId> 
      <artifactId>zhtml</artifactId> 
      <version>6.0.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.zkoss.zk</groupId> 
      <artifactId>zkbind</artifactId> 
      <version>6.0.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.zkoss.zk</groupId> 
      <artifactId>zul</artifactId> 
      <version>6.0.0</version> 
     </dependency> 
     <!-- ZK Dependency Ends --> 

    </dependencies> 
</project> 

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <display-name>DataSyncTreePOC</display-name> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      /WEB-INF/BeanLocations.xml, 

     </param-value> 
    </context-param> 
    <servlet> 
     <description> 
     The ZK loader for ZUML pages</description> 
     <servlet-name>zkLoader</servlet-name> 
     <servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class> 
     <init-param> 
      <param-name>update-uri</param-name> 
      <param-value>/zkau</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet> 
     <description> 
     The asynchronous update engine for ZK</description> 
     <servlet-name>auEngine</servlet-name> 
     <servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>zkLoader</servlet-name> 
     <url-pattern>*.zul</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>zkLoader</servlet-name> 
     <url-pattern>*.zhtml</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>auEngine</servlet-name> 
     <url-pattern>/zkau/*</url-pattern> 
    </servlet-mapping> 
    <!-- <error-page> <exception-type>java.lang.Throwable</exception-type> <location>/error/error.zul</location> 
     </error-page> --> 
    <welcome-file-list> 
     <welcome-file>pages/showDbData.zul</welcome-file> 

    </welcome-file-list> 
</web-app> 

我创建豆这样

ApplicationContext appContext = new ClassPathXmlApplicationContext("spring/config/BeanLocations.xml"); 
itemAttrService = (ItemAttributeService)appContext.getBean("itemAttrService"); 

我能够构建一个appContext但不是itemAttrService

itemAttrService被声明为在同一个文件如下

@Autowired 
private ItemAttributeService itemAttrService 

我也有在我的服务类中使用了@Service注释,如下所示

package com.nagarro.service.impl; 

@Service("itemAttrService") 
public class ItemAttributeServiceImpl implements ItemAttributeService{ 

code.... 
} 

请参阅本课程包含在com.nagarro包中,因此应该自动扫描。但是,情况并非如此。请指点我是否失去了一些东西的关键在我的pom.xmlweb.xml

+0

您还没有表现出任何一种Spring配置。 – 2013-02-17 02:06:31

+0

我在pom.xml文件中显示了依赖关系。我还应该做什么? – 2013-02-17 02:21:13

+0

某处,你有一个你正在加载的“spring/config/BeanLocations.xml”文件,这很可能与问题有关,因为这是一个Spring问题,这是一个Spring配置文件。 – 2013-02-17 02:32:02

回答

1

spring/config/BeanLocations.xml需要包含这样一行:

<context:component-scan base-package="com.nagarro.service.impl" /> 
相关问题