- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个遗留代码,它将使用基于Spring的项目并希望集成它们。
Legacy项目的classpath包含Spring-Based项目的jar文件,Legacy项目的测试代码如下;
package com.levo.test;
import com.levo.legacy.MainGreeter;
public class Test {
public static void main(String[] args) {
MainGreeter m = new MainGreeter();
m.execute();
}
}
旧项目具有基于Spring的项目的.jar文件,如下所示;
输出是;
Main Greeter started!
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
...
为什么我收到 java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware 以及如何集成这两个项目?问题出在哪里。
注意:不能将基于 Spring 的项目添加到旧项目中。
注意#2:如果有详细解释的答案,我们将不胜感激。
基于Spring的项目文件如下;
package com.levo.springproj.util;
import org.apache.log4j.Logger;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringApplicationContext implements ApplicationContextAware {
private static final Logger logger = Logger.getLogger(SpringApplicationContext.class);
private static ApplicationContext CONTEXT;
public static String ENVIRONMENT = "none";
public static String CONTEXTNAME = "main-context.xml";
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
}
public static Object getBean(String beanName) {
if (CONTEXT == null) {
System.setProperty("intMaximoEnvironment", ENVIRONMENT);
CONTEXT = new ClassPathXmlApplicationContext("classpath:" + CONTEXTNAME);
}
return CONTEXT.getBean(beanName);
}
}
package com.levo.springproj;
import com.levo.springproj.service.Greeter;
import com.levo.springproj.util.SpringApplicationContext;
public class MainGreeter {
private static final String BEANSUFFIX = "Bean";
public void execute()
{
System.out.println( "Main Greeter started!" );
setEnvironment("Test");
System.out.println("Environment : " + SpringApplicationContext.ENVIRONMENT);
System.out.println("Context : " + SpringApplicationContext.CONTEXTNAME);
Greeter greeter = getBeanForEvent("Greeter");
greeter.greetSupporter();
}
private static Greeter getBeanForEvent(String eventName) {
try {
Greeter o = (Greeter) SpringApplicationContext.getBean(eventName + BEANSUFFIX);
return o;
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
private void setEnvironment(String environment) {
if(environment==null)
{
return;
}
try{
SpringApplicationContext.ENVIRONMENT = environment;
} catch(Exception e) {
e.printStackTrace();
}
}
}
package com.levo.springproj.service;
public interface Greeter {
public void greetSupporter();
}
package com.levo.springproj.service.impl;
import com.levo.springproj.service.Greeter;
public class GreeterImpl implements Greeter {
private String name;
public void greetSupporter() {
System.out.println("Hello " + name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:integration="http://www.springframework.org/schema/integration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task"
xmlns:util="http://www.springframework.org/schema/util" xmlns:ws="http://www.springframework.org/schema/integration/ws"
xmlns:stream="http://www.springframework.org/schema/integration/stream"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://www.springframework.org/schema/integration/ws http://www.springframework.org/schema/integration/ws/spring-integration-ws-3.0.xsd
http://www.springframework.org/schema/integration/stream http://www.springframework.org/schema/integration/stream/spring-integration-stream-3.0.xsd
">
<bean id="GreeterBean"
class="com.levo.springproj.service.impl.GreeterImpl">
<property name="name" value="Levent" />
</bean>
</beans>
<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.levo.legacy</groupId>
<artifactId>SpringDebug</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>SpringDebug</name>
<url>http://maven.apache.org</url>
<build>
<finalName>SpringProj</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.2.4.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.4.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-stream</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-core</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-ws</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>spring-releases</id>
<name>Spring Maven RELEASE Repository</name>
<url>http://maven.springframework.org/release</url>
</repository>
<repository>
<id>maven2-repository.java.net</id>
<name>Java.net Repository for Maven</name>
<url>http://download.java.net/maven/2/</url>
<layout>default</layout>
</repository>
</repositories>
</project>
最佳答案
将以下文件添加到旧项目类路径应该可以修复 NoClassDefFoundError 异常。旧的遗留代码不知道基于 Spring 的项目中使用的 ApplicationContext;
spring-beans-3.2.4.RELEASE.jar
spring-context-3.2.4.RELEASE.jar
spring-core-3.2.4.RELEASE.jar
spring-expression-3.2.4.RELEASE.jar
关于java - 遗留代码与 Spring 的集成 : java. lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34376862/
刚开始处理Maven和Spring。当我尝试创建DAO和ResultSet然后运行应用程序时,抛出errors: Error:(4, 31) java: package org.springframe
问题: Error:(15, 10) java: cannot find symbol symbol: class SpringRunner Error:(16, 2) java: cannot
我正在尝试构建这个 RESTful 服务示例:https://spring.io/guides/gs/rest-service/GreetingController.java 的导入没有错误: pac
如果我尝试向构造函数注入(inject) Facebook 参数,我将尝试使用 facebook api 使用 spring + thymeleaf + hibernate 创建 Facebook 应
如何解决Spring中Bean的自动连接歧义?我们有一个 Dessert 接口(interface),并且有实现该接口(interface)(Dessert)的三种不同的甜点(Bean)。 今天的甜点
请问为什么我的 pom.xml 文件中会出现此错误 Missing artifact org.springframework:spring-context:jar:${org.springframew
让 gradle 构建正常工作( from a previous question related to this one ),安迪·威尔金森(Andy Wilkinson)为我回答,没有问题。正在为
我正在 tomcat 7 中开发网站(spring 3.1.1),但出现错误 ERROR: org.springframework.web.context.ContextLoader - Contex
我在将航类信息保存到 mysql 数据库时遇到错误。请帮助我下面是我的代码: 我已经尝试了所有方法,添加模式和这么多 它不会从字符串转换为日期 控制台日志 2020-05-12 13:19:21.04
我使用intellij创建了一个小型java应用程序,后来我使用“添加框架支持”选项将该项目更新为Maven项目。当我厌倦了在项目上添加 spring jar 文件时,出现以下错误:“没有为 org.
我尝试使用 org.springframework.data.mongodb.core.MongoOperations 从 mongo 集合中查询记录。我在 CompanyTemplRepoImpl
我尝试将 Spring4 与 Hibernate5 一起使用,但出现此错误: org.springframework.orm.jpa.EntityManagerHolder cannot be cas
我是这个论坛的新手。我正在尝试使用 spring 3.2.6 和 tomcat 7.0 制作一个应用程序。我已将所有必需的 jar 添加到 WEB-INF/lib 文件夹中。 DispatcherSe
我在 maven 架构中使用 Spring 框架 4.0.1.RELEASE、OAuth Security 2.0.7.RELEASE,当我编译代码时,出现以下错误。 SEVERE: Exceptio
我正在使用以下指令开发 CRUD Web 应用程序: https://www.javaguides.net/2019/02/spring-boot-2-angular-7-crud-example-t
这个问题已经有答案了: what is the difference in org.springframework.web.servlet.ModelAndView vs org.springfram
我正在尝试将 hibernate 与 spring boot 一起使用。但我收到此错误:org.springframework.orm.jpa.EntityManagerHolder 无法转换为 or
我尝试创建简单的用户登录和注册页面。但我无法使用服务方法创建用户。我有创建新用户的服务。 @Service public class LocalUserDetailsService implement
我用 STS、Roo 和 GWT 创建了一个新项目,并尝试包含 Spring Security。 从那时起,我收到以下错误。有没有人知道出了什么问题?! org.springframework.bea
这些是我正在使用的版本和依赖项 我怀疑版本需要更改但更改为什么,我不确定 springCore : '5.3.3', springjdbc
我是一名优秀的程序员,十分优秀!