में रिपॉजिटरी को ऑटोवायर नहीं कर सकता हूं, मैं वसंत एनोटेशन का उपयोग कर नियंत्रक में भंडार को स्वत: निकालने की कोशिश कर रहा हूं। मुझे त्रुटि org.springframework.data.repository.query.QueryByExampleExecutor class not found
मिल रही है जिसके लिए मुझे कोई समाधान नहीं मिला। कि मैं हो रही हैमैं वसंत
त्रुटि:
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'articleController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.payforeign.article.ArticleRepository com.payforeign.article.ArticleController.repository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'articleRepository': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/repository/query/QueryByExampleExecutor
नियंत्रक
package com.payforeign.article;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/service")
public class ArticleController {
@Autowired
private ArticleRepository repository;
//controller methods
}
भंडार
मैं @Repository
साथ भंडार टिप्पणी किए गए। वसंत प्रलेखन के अनुसार मेरे पास केवल भंडार इंटरफ़ेस है। क्या यह सही है?
package com.payforeign.article;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface ArticleRepository extends CrudRepository<Article, Long> {}
applicationContext.xml
मैं सही base-package
और component-scan
साथ jpa:repositories
शामिल किया है। मैंने निर्दिष्ट किया है कि यह एनोटेशन संचालित है (<mvc:annotation-driven /> <tx:annotation-driven />
) और जेडीबीसी और जेपीए सेटिंग्स को जोड़ा। मेरे applicationContext.xml सही ढंग से web.xml से
<?xml version='1.0' encoding='UTF-8' ?>
<beans ...>
<context:component-scan base-package="com.payforeign,com.payforeign.article" />
<mvc:annotation-driven />
<jpa:repositories base-package="com.payforeign.article" />
<!-- Data Source -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" >
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/payforeign" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
<!-- Hibernate -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.payforeign.article" />
<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>
<!-- enable the configuration of transactional behavior based on annotations -->
<tx:annotation-driven />
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
</beans>
स्टैक ट्रेस स्पष्ट है: आप अपने क्लासस्पैट से स्प्रिंग डेटा जेएआर खो रहे हैं। – duffymo
'NoClassDefFoundError' लगभग हमेशा एक संस्करण मेल नहीं खाता है। इस मामले में, मेरा मानना है कि आपको प्रश्न-दर-उदाहरण प्राप्त करने के लिए आरसी संस्करणों (या कम से कम नवीनतम रिलीज संस्करण) की आवश्यकता है। – chrylis
मैंने संस्करण 1.11.4 से 1.12.1 तक 'वसंत-डेटा-कॉमन्स' को अपग्रेड किया है और इसने समस्या को हल किया है। धन्यवाद @chrylis – Black