2012-04-10 20 views
11

मैं वर्तमान में एक छोटे से webapp स्प्रिंग, हाइबरनेट और Maven का उपयोग करता है के निर्माण के लिए कोशिश कर रहा हूँ (एक बिल्ला पर चल रहा है) । यह काफी ठीक काम करता है, सिवाय इसके कि मैं काम करने के लिए अपने एम्बेडेड डेटाबेस नहीं प्राप्त कर सकता। मुझे आशा है आप मेरी मदद कर सकते हैं।स्प्रिंग + Maven: मिलान वाइल्डकार्ड सख्त है, लेकिन कोई घोषणा तत्व के लिए पाया जा सकता है 'JDBC: एम्बेडेड-डेटाबेस'

मैं हमेशा इस त्रुटि का सामना करना पड़ रहा हूँ, जब मैं बिलाव को webapp की तैनाती कर रहा हूँ:

मिलान वाइल्डकार्ड सख्त है, लेकिन कोई घोषणा तत्व के लिए पाया जा सकता है 'JDBC: एम्बेडेड-डेटाबेस'

मेरी जांच के दौरान मैंने सीखा है कि इस संदेश को लापता पुस्तकालयों की ओर इशारा कर रहा है। इसलिए मैंने अपना pom.xml जोड़ा, जहां मैंने आर्टिफैक्ट वसंत-जेडीबीसी जोड़ा।

तुम मुझे त्रुटि खोजने में मदद कर सकते हैं? आपका बहुत बहुत धन्यवाद!


यह मेरा वसंत-विन्यास फाइल है, जो webapp के प्रारंभ के दौरान त्रुटि का कारण बनता है:

<?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

में इस लाइन आपकी वसंत संदर्भ फ़ाइल:

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

को बदला जाना चाहिए:

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

सुनिश्चित नहीं हैं कि क्या आईडीई का उपयोग कर रहे हैं, लेकिन साथ कुछ (इंटेलीजे उदाहरण के लिए) यह एक त्रुटि के रूप में चिह्नित किया जाएगा और सिर दर्द का एक बहुत बचाने के लिए!

+0

धन्यवाद जोड़ने! यह तय है। मैं ग्रहण का उपयोग कर रहा हूं। मुझे लगता है कि मुझे यह देखने की ज़रूरत है कि क्यों ग्रहण इसे एक त्रुटि के रूप में नहीं दिखाता है। इस stackoverflow पर मेरा पहला सवाल यह है, तो मैं अपने जवाब को वोट नहीं कर सकते? – mavilein

+0

कोई समस्या नहीं :) SO में आपका स्वागत है। उत्तर देने के लिए आपको अपना प्रतिनिधि ** ** ** प्राप्त करना होगा, सुनिश्चित करें कि आप वहां कभी भी नहीं होंगे। – darrengorman

10

मेरे लिए यह xmlns जोड़ने के लिए किया गया था: JDBC और xsi: 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 को xsi में संदर्भित करने की आवश्यकता है: schemaLocation, इसे xmlns में जोड़ना पर्याप्त नहीं है। –

+0

मैं अपने schemaLocation को जोड़ा गया http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd। उपयोगी अगर आप संस्करण 3.0 का उपयोग नहीं कर रहे हैं। –