2013-02-17 1 views
1

Я пробую пример в Spring + Hibernate + ZK framework. Я упаковываю файл войны через файл pom.xml. После этого, когда я запускаю программу on server Она бросает следующее исключениеorg.springframework.beans.factory.NoSuchBeanDefinitionException: не указан bean с именем 'itemAttrService'

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.xml или web.xml

+0

Вы не показали каких-либо конфигурации Spring. –

+0

Я показал зависимости в файле pom.xml. Что еще мне делать? –

+0

Где-то у вас есть файл «spring/config/BeanLocations.xml», который вы загружаете, что очень вероятно связано с проблемой, так как это проблема Spring, и это файл конфигурации Spring. –

ответ

1

ваших spring/config/BeanLocations.xml должен содержать строку:

<context:component-scan base-package="com.nagarro.service.impl" /> 
Смежные вопросы