2012-04-10 6 views
11

현재 Spring, Hibernate 및 Maven (Tomcat에서 실행 중)을 사용하는 작은 webapp를 빌드하려고합니다. . 내 임베디드 데이터베이스를 작동시킬 수 없다는 것을 제외하고는 꽤 잘 작동합니다. 네가 나를 도울 수 있기를 바랍니다.Spring + Maven : 일치하는 와일드 카드가 엄격하지만 'jdbc : embedded-database'요소에 대한 선언을 찾을 수 없습니다

난 항상이 오류에 직면하고, 나는 톰캣에 웹 애플리케이션을 배포하고 때

일치하는 와일드 카드는 엄격한, 그러나 선언은 요소에 대한 'JDBC를 : 임베디드 데이터베이스'을 (를) 찾을 수 없습니다

내가 조사하는 동안이 메시지가 누락 된 라이브러리를 가리키고 있음을 알게되었습니다. 따라서 나는 pom.xml을 추가했다. 여기에서 artifact spring-jdbc를 추가했다.

오류를 찾을 수 있습니까? 고마워요!


는 웹 애플리케이션의 초기화 중에 오류가 발생 내 스프링 구성 파일입니다 :

<?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:jdbc="http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd" 
    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-3.0.xsd 
    http://www.springframework.org/schema/jdbc 
    http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd"> 
    <bean id="sessionFactory" class= 
    "org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="dataSource" ref="embeddedDatasource" /> 
     <property name="packagesToScan" value="org.rest" /> 
     <property name="hibernateProperties"> 
      <value> 
       hibernate.dialect=org.hibernate.dialect.MySQL5Dialect 
       hibernate.hbm2ddl.auto=update 
       hibernate.show_sql=false 
      </value> 
     </property> 
    </bean> 

    <jdbc:embedded-database id="embeddedDatasource" type="HSQL"/> 

    <bean id="txManager" class= 
     "org.springframework.orm.hibernate3.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 
    <tx:annotation-driven transaction-manager="txManager" /> 
</beans> 

이 내 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.marcus</groupId> 
    <artifactId>maven-webapp-archetype</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>maven-webapp-archetype Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>3.0-alpha-1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet.jsp.jstl</groupId> 
     <artifactId>javax.servlet.jsp.jstl-api</artifactId> 
     <version>1.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>3.6.10.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-jdbc</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    </dependencies> 
    <build> 
    <finalName>maven-webapp-archetype</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat6-maven-plugin</artifactId> 
      <version>2.0-beta-1</version> 
      <configuration> 
      <url>http://localhost:8080/manager/html</url> 
      <server>tomcat7</server> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat7-maven-plugin</artifactId> 
      <version>2.0-beta-1</version> 
      <configuration> 
       <url>http://localhost:8080/manager/html</url> 
       <server>tomcat7</server> 
      </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

답변

14

이 라인 Spring 컨텍스트 파일 :

xmlns:jdbc="http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd" 

로 변경해야합니다

xmlns:jdbc="http://www.springframework.org/schema/jdbc" 

사용하지만 일부는 (IntelliJ를 예를 들어)이 오류로 플래그 될 것이다 두통을 많이 저장하고 어떤 IDE 확실하지! JDBC 및 XSI : 그것의 xmlns을 추가했다 나를 위해

+0

감사를 추가! 그것은 그것을 고쳤다. 이클립스를 사용하고 있습니다. 이클립스가 오류로 보지 않는 이유를 살펴 봐야 할 것 같아요. 이것은 stackoverflow에 대한 나의 첫 번째 질문이므로 답변을 투표 할 수 없습니까? – mavilein

+0

문제 없음 :) 안녕하세요. 답변을 투표하려면 ** 담당자에게 ** 15 **를 요청해야합니다. – darrengorman

10

의 schemaLocation

<beans .... 

    xmlns:jdbc="http://www.springframework.org/schema/jdbc" 

    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    ..... 
    http://www.springframework.org/schema/jdbc 
    http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd" 
    default-lazy-init="true"> 

또한

+0

xsd : schemaLocation에서 xsd를 참조해야하며 xmlns에 추가하면 충분하지 않습니다. –

+0

http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd를 내 schemaLocation에 추가했습니다. 버전 3.0을 사용하지 않는 경우 유용합니다. –

관련 문제