Как я могу разрешить JpaRepository <> в Spring MVC

Я работаю над проектом Spring MVC и хочу создать интерфейс репозитория, расширяющий JpaRepository. Однако я сталкиваюсь с ошибками компиляции, указывающими на отсутствие некоторых файлов JAR или на наличие конфликтов между файлами JAR.

Вот мой интерфейс репозитория:

public interface  StudentRepository extends JpaRepository<Student , Long> {
}

Я включил в свой проект следующие файлы JAR:

antlr-2.7.7.jar
aopalliance-1.0.jar
aspectjrt-1.8.0.jar
commons-logging-1.1.3.jar
dom4j-1.6.1.jar
hibernate-commons-annotations-4.0.4.Final.jar
hibernate-core-4.3.5.Final.jar
hibernate-entitymanager-4.3.5.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
hsqldb-2.3.2.jar
jandex-1.1.0.Final.jar
javassist-3.18.1-GA.jar
javax.servlet-api-3.1.0.jar
javax.servlet.jsp.jstl-1.2.5.jar
jboss-logging-3.1.3.GA.jar
jboss-logging-annotations-1.2.0.Beta1.jar
jboss-transaction-api_1.2_spec-1.0.0.Final.jar
jcl-over-slf4j-1.7.7.jar
jsp-api-2.1.jar
jstl-api-1.2.jar
serializer-2.7.2.jar
servlet-api-2.5.jar
slf4j-api-1.7.7.jar
spring-aop-4.0.7.RELEASE.jar
spring-beans-4.0.7.RELEASE.jar
spring-context-4.0.7.RELEASE.jar
spring-core-4.0.7.RELEASE.jar
spring-data-commons-1.8.0.RELEASE.jar
spring-data-jpa-1.6.0.RELEASE.jar
spring-expression-4.0.7.RELEASE.jar
spring-jdbc-4.0.7.RELEASE.jar
spring-orm-4.0.7.RELEASE.jar
spring-tx-4.0.7.RELEASE.jar
spring-web-4.0.7.RELEASE.jar
spring-webmvc-4.0.7.RELEASE.jar
xalan-2.7.2.jar

Мой класс репозитория

package dao;
import entity.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface StudentDao extends CrudRepository<Student, Long> {
    // methods if any
}

Мой класс контроллера

package controller;

import dao.StudentDao;
import entity.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller
public class StudentController {

    @Autowired
     StudentDao studentDao;

    @RequestMapping("/student")
    public String studentList(Model model) {
        List<Student> students = (List<Student>) studentDao.findAll();
        model.addAttribute("users", students);
        System.out.println("List of students: " + students);
        System.out.println("Controller of students");
        return "student";
    }
}

ApplicationContext.xml находится здесь.

<?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:p = "http://www.springframework.org/schema/p"
       xmlns:aop = "http://www.springframework.org/schema/aop"
       xmlns:jpa = "http://www.springframework.org/schema/data/jpa"
       xmlns:tx = "http://www.springframework.org/schema/tx"
       xmlns:mvc = "http://www.springframework.org/schema/mvc"
       xmlns:context = "http://www.springframework.org/schema/context"
       xsi:schemaLocation = "http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/aop 
                           http://www.springframework.org/schema/aop/spring-aop.xsd
                           http://www.springframework.org/schema/tx 
                           http://www.springframework.org/schema/tx/spring-tx.xsd
                           http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd  
                           http://www.springframework.org/schema/data/jpa 
                           http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">

    <!-- Load properties from application.properties -->
    <bean class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name = "location" value = "/WEB-INF/application.properties" />
    </bean>
 <context:annotation-config />
    <!-- Enable MVC annotations -->
    <mvc:annotation-driven />

    <!-- Serve static resources -->
    <mvc:resources mapping = "/reports/**" location = "/WEB-INF/reports/" />
    <mvc:resources mapping = "/images/**" location = "/WEB-INF/images/" />
    <mvc:resources location = "/WEB-INF/resources/" mapping = "/resources/**"/>

    <!-- Enable transaction management -->
    <tx:annotation-driven transaction-manager = "jpaTransactionManager"/>

    <!-- Component scan for all relevant packages -->
    <context:component-scan base-package = "controller, service, dao, config, dto,entity"/>

    <!-- Configure data source -->
    <bean id = "dataSource" class = "org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name = "driverClassName" value = "com.mysql.cj.jdbc.Driver" />
        <property name = "url" value = "jdbc:mysql://localhost:3306/springdb" />
        <property name = "username" value = "root" />
        <property name = "password" value = "root" />
    </bean>

    <!-- Configure JPA EntityManagerFactory -->
    <bean id = "entityManagerFactory" class = "org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name = "dataSource" ref = "dataSource" />
        <property name = "packagesToScan" value = "entity.Student" />
        <property name = "jpaVendorAdapter">
            <bean class = "org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
        </property>
        <property name = "jpaProperties">
            <props>
                <!-- Set Hibernate dialect -->
                <prop key = "hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                <!-- Show SQL queries in console for debugging -->
                <prop key = "hibernate.show_sql">true</prop>
                <!-- Automatically update database schema -->
                <prop key = "hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
    </bean>

    <!-- Configure JPA Transaction Manager -->
    <bean id = "jpaTransactionManager" class = "org.springframework.orm.jpa.JpaTransactionManager">
        <property name = "entityManagerFactory" ref = "entityManagerFactory" />
    </bean>

</beans>

Ошибки в консоли, с которыми я столкнулся

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'studentController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: dao.StudentDao controller.StudentController.studentDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [dao.StudentDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:293)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1186)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)

удалить javax.persistence-api-2.2.jar

life888888 23.06.2024 06:49

после удаления все еще не работает/устранена ошибка компиляции

Bilal Kundi 23.06.2024 06:52

показать свой pom.xml и другое сообщение об исключении?

life888888 23.06.2024 06:54

весеннее загрузочное приложение или война веб-приложений?

life888888 23.06.2024 06:55

Я работаю с Spring MVC и не использую Spring Boot, поэтому не использую файл POM.xml. Вместо этого я вручную загрузил необходимые файлы JAR и добавил их в путь к классам моего проекта в Spring MVC.

Bilal Kundi 23.06.2024 06:59

Я обновляю ответ, использую Spring MVC 4.

life888888 23.06.2024 17:39
0
6
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обновлять

  • Apache-Tomcat-9.0.90
  • JDK 1.8.0_412
  • весна-ядро-4.0.7.RELEASE.jar
  • весна-orm-4.0.7.RELEASE.jar
  • весна-данные-jpa-1.6.0.RELEASE.jar
  • весна-webmvc-4.0.7.RELEASE.jar
  • весна-web-4.0.7.RELEASE.jar

ОБНОВЛЕНИЕ Eclipse Dynamic Web WAR

hello-tomcat9-web$ tree
.
└── src
    └── main
        ├── java
        │   └── com
        │       └── example
        │           ├── controller
        │           │   └── UserController.java
        │           ├── model
        │           │   └── User.java
        │           └── repository
        │               └── UserRepository.java
        └── webapp
            ├── META-INF
            │   └── MANIFEST.MF
            └── WEB-INF
                ├── lib
                │   ├── antlr-2.7.7.jar
                │   ├── aopalliance-1.0.jar
                │   ├── aspectjrt-1.8.0.jar
                │   ├── commons-logging-1.1.3.jar
                │   ├── dom4j-1.6.1.jar
                │   ├── hibernate-commons-annotations-4.0.4.Final.jar
                │   ├── hibernate-core-4.3.5.Final.jar
                │   ├── hibernate-entitymanager-4.3.5.Final.jar
                │   ├── hibernate-jpa-2.1-api-1.0.0.Final.jar
                │   ├── hsqldb-2.3.2.jar
                │   ├── jandex-1.1.0.Final.jar
                │   ├── javassist-3.18.1-GA.jar
                │   ├── javax.servlet-api-3.1.0.jar
                │   ├── javax.servlet.jsp.jstl-1.2.5.jar
                │   ├── jboss-logging-3.1.3.GA.jar
                │   ├── jboss-logging-annotations-1.2.0.Beta1.jar
                │   ├── jboss-transaction-api_1.2_spec-1.0.0.Final.jar
                │   ├── jcl-over-slf4j-1.7.7.jar
                │   ├── jsp-api-2.1.jar
                │   ├── jstl-api-1.2.jar
                │   ├── serializer-2.7.2.jar
                │   ├── servlet-api-2.5.jar
                │   ├── slf4j-api-1.7.7.jar
                │   ├── spring-aop-4.0.7.RELEASE.jar
                │   ├── spring-beans-4.0.7.RELEASE.jar
                │   ├── spring-context-4.0.7.RELEASE.jar
                │   ├── spring-core-4.0.7.RELEASE.jar
                │   ├── spring-data-commons-1.8.0.RELEASE.jar
                │   ├── spring-data-jpa-1.6.0.RELEASE.jar
                │   ├── spring-expression-4.0.7.RELEASE.jar
                │   ├── spring-jdbc-4.0.7.RELEASE.jar
                │   ├── spring-orm-4.0.7.RELEASE.jar
                │   ├── spring-tx-4.0.7.RELEASE.jar
                │   ├── spring-web-4.0.7.RELEASE.jar
                │   ├── spring-webmvc-4.0.7.RELEASE.jar
                │   ├── xalan-2.7.2.jar
                │   └── xml-apis-1.0.b2.jar
                ├── spring
                │   ├── application-context.xml
                │   └── dispatcher-config.xml
                ├── views
                │   └── index.jsp
                └── web.xml

Пользователь.java

package com.example.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Пользовательскийрепозиторий.java

package com.example.repository;

import org.springframework.data.repository.CrudRepository;
import com.example.model.User;

public interface UserRepository extends CrudRepository<User, Long> {
}

Пользовательконтроллер.java

package com.example.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.example.model.User;
import com.example.repository.UserRepository;

@Controller
public class UserController {

    @Autowired
    private UserRepository userRepository;
    
    
    @RequestMapping(value = "/",method = RequestMethod.GET)
    public String index(Model model) {
        model.addAttribute("users", userRepository.findAll());
        return "index";
    }

    @RequestMapping(value = "/add",method = RequestMethod.POST)
    public String addUser(@RequestParam String name) {
        User user = new User();
        user.setName(name);
        userRepository.save(user);
        return "redirect:/";
    }
    @RequestMapping(value = "/del",method = RequestMethod.GET)
    public String delUser(@RequestParam Long id) {
        userRepository.delete(id);        
        return "redirect:/";
    }    
}

index.jsp

<%@ page language = "java" contentType = "text/html; charset=UTF-8"
    pageEncoding = "UTF-8"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
    
<!DOCTYPE html>
<html>
<head>
<meta charset = "UTF-8">
    <title>User List</title>
</head>
<body>
    <h1>User List</h1>
    <form action = "add" method = "post">
        <input type = "text" name = "name" placeholder = "Enter user name" required />
        <input type = "submit" value = "Add User" />
    </form>
    <ul>
        <c:forEach items = "${users}" var = "user">
            <li>${user.id} - ${user.name} - 
 <a href = "<c:url value='/del'><c:param name='id' value='${user.id}'/></c:url>">Delete User</a>
            </li>
        </c:forEach>
    </ul>
</body>
</html>

диспетчер-config.xml

<beans xmlns = "http://www.springframework.org/schema/beans"
    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context = "http://www.springframework.org/schema/context"
    xmlns:mvc = "http://www.springframework.org/schema/mvc"
    xsi:schemaLocation = "http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package = "com.example" />

    <mvc:annotation-driven />
    <mvc:default-servlet-handler />

    <bean
        class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name = "prefix" value = "/WEB-INF/views/" />
        <property name = "suffix" value = ".jsp" />
    </bean>
</beans>

приложение-context.xml

<beans xmlns = "http://www.springframework.org/schema/beans"
    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context = "http://www.springframework.org/schema/context"
    xmlns:tx = "http://www.springframework.org/schema/tx"
    xmlns:jpa = "http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation = "http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/data/jpa 
        http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">

    <context:component-scan base-package = "com.example" />
    <context:annotation-config />

    <bean id = "dataSource" class = "org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name = "driverClassName" value = "org.hsqldb.jdbc.JDBCDriver" />
        <property name = "url" value = "jdbc:hsqldb:mem:testdb" />
        <property name = "username" value = "sa" />
        <property name = "password" value = "" />
    </bean>

    <bean id = "entityManagerFactory" class = "org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name = "dataSource" ref = "dataSource" />
        <property name = "packagesToScan" value = "com.example.model" />
        <property name = "jpaVendorAdapter">
            <bean class = "org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name = "generateDdl" value = "true" />
                <property name = "showSql" value = "true" />
            </bean>
        </property>
    </bean>

    <bean id = "transactionManager" class = "org.springframework.orm.jpa.JpaTransactionManager">
        <property name = "entityManagerFactory" ref = "entityManagerFactory" />
    </bean>

    <tx:annotation-driven />

    <jpa:repositories base-package = "com.example.repository" />
</beans>

веб.xml

<?xml version = "1.0" encoding = "UTF-8"?>
<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id = "WebApp_ID" version = "4.0">
  <display-name>hello-tomcat9-web</display-name>
  
      <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/dispatcher-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/application-context.xml</param-value>
    </context-param>
    
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>  
</web-app>

список jar-библиотек

antlr-2.7.7.jar
aopalliance-1.0.jar
aspectjrt-1.8.0.jar
commons-logging-1.1.3.jar
dom4j-1.6.1.jar
hibernate-commons-annotations-4.0.4.Final.jar
hibernate-core-4.3.5.Final.jar
hibernate-entitymanager-4.3.5.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
hsqldb-2.3.2.jar
jandex-1.1.0.Final.jar
javassist-3.18.1-GA.jar
javax.servlet-api-3.1.0.jar
javax.servlet.jsp.jstl-1.2.5.jar
jboss-logging-3.1.3.GA.jar
jboss-logging-annotations-1.2.0.Beta1.jar
jboss-transaction-api_1.2_spec-1.0.0.Final.jar
jcl-over-slf4j-1.7.7.jar
jsp-api-2.1.jar
jstl-api-1.2.jar
serializer-2.7.2.jar
servlet-api-2.5.jar
slf4j-api-1.7.7.jar
spring-aop-4.0.7.RELEASE.jar
spring-beans-4.0.7.RELEASE.jar
spring-context-4.0.7.RELEASE.jar
spring-core-4.0.7.RELEASE.jar
spring-data-commons-1.8.0.RELEASE.jar
spring-data-jpa-1.6.0.RELEASE.jar
spring-expression-4.0.7.RELEASE.jar
spring-jdbc-4.0.7.RELEASE.jar
spring-orm-4.0.7.RELEASE.jar
spring-tx-4.0.7.RELEASE.jar
spring-web-4.0.7.RELEASE.jar
spring-webmvc-4.0.7.RELEASE.jar
xalan-2.7.2.jar

Экспорт Затмения ВОЙНА

экспорт ВОЙНА = hello-t9-web.war

Развертывание в Tomcat 9

поместите hello-t9-web.war в Tomcat9/webapps

Запустить Томкэт 9

Тест

Откройте «http://localhost:8080/hello-t9-web».

Добавить пользователя

  • введите «ааа», затем нажмите кнопку
  • введите «bbb», затем нажмите кнопку
  • введите «ccc», затем нажмите кнопку

Удалить пользователя

  • Нажмите ссылку «Удалить пользователя».

СОВЕТЫ

Судя по предоставленной вами информации, единственное, чем я могу помочь, это следующее:

Вы можете сразу перейти к следующему абзацу Jar List и узнать, есть ли у вас следующие файлы?

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.example</groupId>
    <artifactId>helloworldwebapp</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>helloworld Maven Webapp</name>
    <properties>
        <maven.compiler.target>17</maven.compiler.target>
        <maven.compiler.source>17</maven.compiler.source>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>3.3.1</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>6.1.10</version>
        </dependency>

        <dependency>
            <groupId>jakarta.persistence</groupId>
            <artifactId>jakarta.persistence-api</artifactId>
            <version>3.2.0</version>
        </dependency>

    </dependencies>

    <build>
        <finalName>helloworld</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.4.0</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

получить все банки зависимостей

mvn dependency:copy-dependencies -DoutputDirectory=target/libs

Список jar-файлов зависимостей

target/libs
├── antlr4-runtime-4.13.0.jar
├── jakarta.annotation-api-2.0.0.jar
├── jakarta.persistence-api-3.2.0.jar
├── micrometer-commons-1.12.7.jar
├── micrometer-observation-1.12.7.jar
├── slf4j-api-2.0.2.jar
├── spring-aop-6.1.9.jar
├── spring-beans-6.1.9.jar
├── spring-context-6.1.9.jar
├── spring-core-6.1.9.jar
├── spring-data-commons-3.3.1.jar
├── spring-data-jpa-3.3.1.jar
├── spring-expression-6.1.9.jar
├── spring-jcl-6.1.9.jar
├── spring-jdbc-6.1.10.jar
├── spring-orm-6.1.10.jar
└── spring-tx-6.1.9.jar

Список банок

  • весна-orm-6.1.10.jar
  • jakarta.persistence-api-3.2.0.jar
  • весна-данные-jpa-3.3.1.jar

Теперь проверьте файл jar в следующем списке. Вы скачали его?

  • antlr4-runtime-4.13.0.jar
  • jakarta.annotation-api-2.0.0.jar
  • микрометр-commons-1.12.7.jar
  • микрометр-наблюдение-1.12.7.jar
  • slf4j-api-2.0.2.jar
  • весна-аоп-6.1.9.jar
  • весна-бобы-6.1.9.jar
  • весна-контекст-6.1.9.jar
  • пружинное ядро-6.1.9.jar
  • весна-данные-commons-3.3.1.jar
  • весна-выражение-6.1.9.jar
  • весна-jcl-6.1.9.jar
  • весна-jdbc-6.1.10.jar
  • весна-tx-6.1.9.jar

дерево зависимостей

mvn dependency:tree
+- org.springframework.data:spring-data-jpa:jar:3.3.1:compile
|  +- org.springframework.data:spring-data-commons:jar:3.3.1:compile
|  +- org.springframework:spring-context:jar:6.1.9:compile
|  |  +- org.springframework:spring-expression:jar:6.1.9:compile
|  |  \- io.micrometer:micrometer-observation:jar:1.12.7:compile
|  |     \- io.micrometer:micrometer-commons:jar:1.12.7:compile
|  +- org.springframework:spring-aop:jar:6.1.9:compile
|  +- org.springframework:spring-tx:jar:6.1.9:compile
|  +- org.springframework:spring-beans:jar:6.1.9:compile
|  +- org.springframework:spring-core:jar:6.1.9:compile
|  |  \- org.springframework:spring-jcl:jar:6.1.9:compile
|  +- org.antlr:antlr4-runtime:jar:4.13.0:compile
|  +- jakarta.annotation:jakarta.annotation-api:jar:2.0.0:compile
|  \- org.slf4j:slf4j-api:jar:2.0.2:compile
+- org.springframework:spring-orm:jar:6.1.10:compile
|  \- org.springframework:spring-jdbc:jar:6.1.10:compile
\- jakarta.persistence:jakarta.persistence-api:jar:3.2.0:compile

Рекомендуется:

(1) вы создаете пустой каталог,

(2) затем сгенерируйте pom.xml (как я указал выше),

(3), а затем выполните команду mvn dependency:copy-dependencies -DoutputDirectory=target/libs,

(4) вы можете сразу получить все зависимые файлы jar в каталоге target/libs, а затем скопировать их в свой проект веб-приложения.

Должен ли я загружать точные версии, указанные в списке JAR, или допустимо использовать версии, которые не совпадают точно? Дополнительно хочу отметить, что я использую Java версии 1.8. Поскольку я не использую pom.xml, мне нужно вручную загрузить эти JAR-файлы.

Bilal Kundi 23.06.2024 07:49

(1) Сначала просмотрите tomcat.apache.org/whatversion.html (2) Подтвердите версию Tomcat, которую вы хотите использовать (3) Затем подтвердите, какую версию спецификации сервлета вы хотите использовать? 6 или 4? (Это повлияет на то, использует ли он javax.* или jakarta.* по умолчанию) (4) Tomcat 10.1 использует jakarta.*, Servlet Spec 6 (5) Последняя версия Spring Framework 6 требует JDK 17+ (6) Spring Framework 5.3 .x: JDK 8–19 (ожидается)

life888888 23.06.2024 08:16

(7) Сначала подтвердите, есть ли у вас ограничения на использование JDK 1.8 (JDK 8)? Если это так, вам не следует использовать Spring-data-jpa 3.3.1 (поскольку Spring-data-jpa 3.3.1 зависит от Spring 6), и аналогично для других версий пакета, если они зависят от Spring 6, вам не следует использовать их. Вместо этого вам следует использовать более старую версию.

life888888 23.06.2024 08:16

(1) Версия JDK (JDK 1.8 или JDK 17) (2) Java EE 8 или Jakarta EE 10? (3) Версия Tomcat? Tomcat 9 или Tomcat 10.1 (4) Spring 5.3 или Spring 6?

life888888 23.06.2024 08:19

Я знаю, что ваш проект веб-приложения не использует pom.xml, поэтому нет необходимости изменять ваш проект. Я предлагаю вам создать еще один пустой каталог и просто поместить предоставленный мной pom.xml в этот пустой каталог. Да. Затем выполните mvn dependency:copy-dependencies -DoutputDirectory=target/libs, чтобы загрузить все jar-файлы одновременно.

life888888 23.06.2024 08:24

Я использую Tomcat 9.0 для своего сервера. Кроме того, я работаю с NetBeans 8.2, по умолчанию используется Spring Framework 4.0.1. Просто для подтверждения: я использую Java версии 1.8.

Bilal Kundi 23.06.2024 08:32

Я загрузил файлы JAR с точными версиями, которые вы указали, и добавил их в путь к классам, но ошибка компиляции не устранена.

Bilal Kundi 23.06.2024 08:33

вам не следует использовать Spring-data-jpa 3.3.1 (поскольку Spring-data-jpa 3.3.1 зависит от Spring 6.

life888888 23.06.2024 08:48

тогда какую версию мне использовать?

Bilal Kundi 23.06.2024 08:52

возможно, Spring-data-jpa 1.7.2.RELEASE, это зависит от spring-core:jar:4.0.7.RELEASE (ваше ограничение: Spring Framework 4.0.1), я использую mvn dependency:tree, чтобы узнать дерево зависимостей.

life888888 23.06.2024 08:58

после добавления spring-data-jpa 1.7.2.RELEASE теперь в консоли появляется это сообщение об ошибке Compiling 16 source files to C:\Users\DELL\Documents\NetBeansProjects\BirtProject\build\w‌​eb\WEB-INF\classes C:\Users\DELL\Documents\NetBeansProjects\BirtProject\src\jav‌​a\dao\StudentDao.jav‌​a:17: error: cannot access PagingAndSortingRepository public interface StudentDao extends JpaRepository<Student , Long>{ bad class file: C:\Users\DELL\Downloads\JPA Jar files\spring-data-commons-3.3.1.jar(org/springframework/data‌​/repository/PagingAn‌​dSortingRepository.c‌​lass)

Bilal Kundi 23.06.2024 09:09

Задайте ИИ следующие вопросы: «Tomca 9 war JDK 1.8 Spring 4.0.1 Минимальный пример с использованием Spring MVC и Spring Data JPA». (Думаю, вам нужен минимальный пример веб-приложения (войны), ИИ, которым может быть CharGPT или что-то еще. Это облегчит вам получение минимального исполняемого примера.)

life888888 23.06.2024 09:10

Spring-data-jpa 1.7.2.RELEASE зависит от Spring-data-commons 1.9.2.RELEASE.

life888888 23.06.2024 09:15
java.lang.UnsupportedClassVersionError: org/apache/commons/logging/LogFactoryService has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class [org.apache.commons.logging.LogFactoryService]) at org.apache.catalina.loader.WebappClassLoaderBase.findClassIn‌​ternal(WebappClassLo‌​aderBase.java:2475)
Bilal Kundi 23.06.2024 09:25

(1) Проверьте версию Apache Commons Logging, которую вы используете, используйте более старую версию. (Более новая версия может быть скомпилирована с помощью JDK 17 и не может быть выполнена во время выполнения JDK 1.8) (52.0 -> JDK 1.8, 61.0 -> JDK 17, ) (2) Если мой ответ не решит вашу проблему, пожалуйста, не установите его как принятое.

life888888 23.06.2024 09:40

@Bilal Kundi - я обновил ответ и предоставил военный проект, который можно выполнить с помощью JDK 1.8, Springg 4 и Tomcat 9.

life888888 23.06.2024 17:41

Все ошибки компиляции теперь устранены, но ошибки времени выполнения по-прежнему присутствуют в консоли, вот точная ошибка org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'studentController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private dao.StudentDao controller.StudentController.studentDao

Bilal Kundi 23.06.2024 18:50

я ограничился ответом, который я даю в комментариях, в противном случае я хочу поделиться своим applicationContext.xml, где, как мне кажется, чего-то не хватает, пожалуйста, как я могу поделиться своим кодом целиком

Bilal Kundi 23.06.2024 18:53

Можете ли вы поделиться проектом, который вы запустили весной 4 с Tomcat 9?

Bilal Kundi 24.06.2024 18:27

проект, который вы создали, поделитесь по адресу [email protected] со всем файлом jar.

Bilal Kundi 24.06.2024 19:11

Я опубликовал полное содержимое проекта, включая структуру каталогов, список файлов и содержимое файлов. Вам нужно всего лишь вставить содержимое в свой файл, чтобы запустить его. Я подтвердил, что проект можно развернуть в Tomcat для выполнения, поэтому во время выполнения появляется экран.

life888888 25.06.2024 06:18

Я хочу, чтобы весь проект с файлом jar действительно пытался загрузить файл jar той же версии каждый раз, когда возникает какой-то конфликт.

Bilal Kundi 25.06.2024 18:17

после всех настроек я столкнулся с этой ошибкой org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'studentController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private dao.StudentDao controller.StudentController.studentDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionExcept‌​ion: No qualifying bean of type [dao.StudentDao] found for dependency: expected at least 1 bean which

Bilal Kundi 25.06.2024 20:23

СтудентДао это package dao; import entity.Student; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface StudentDao extends JpaRepository<Student, Long> { // methods if any }

Bilal Kundi 25.06.2024 20:24

контроллер package controller; @Controller public class StudentController { @Autowired private StudentDao studentDao; @RequestMapping("/student") public String studentList(Model model) { List<Student> students = studentDao.findAll(); model.addAttribute("users", students); System.out.println("List of students: " + students); System.out.println("Controller of students"); return "student"; } }

Bilal Kundi 25.06.2024 20:25

я ограничен в публикации ответа, поэтому привожу весь код в комментариях Sorry, we are no longer accepting answers from your account because most of your answers need improvement or do not sufficiently answer the question. See the Help Center to learn more.

Bilal Kundi 25.06.2024 20:27

Вы можете добавить свой проект в свой вопрос. просто нажмите edit.

life888888 26.06.2024 06:32

вопрос в обновлении, так как я не могу найти приложение, чтобы прикрепить проект

Bilal Kundi 26.06.2024 18:31

у меня есть вопрос и все подробности вместе с сообщением об ошибке, отображаемым в консоли

Bilal Kundi 28.06.2024 18:33

Другие вопросы по теме