Kann nicht geladen configuration-Klasse
Ich bin nach diese tutorial über die Verwendung von Feder und basiert auf dem Beispiel, bekomme ich die folgende exception:
Exception in thread "main" java.lang.IllegalStateException: Cannot load configuration class: com.tutorialspoint.HelloWorldConfig
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:378)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:263)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:265)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:126)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:609)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:84)
at com.tutorialspoint.MainApp.main(MainApp.java:9)
Caused by: org.springframework.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:237)
at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
at org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:128)
at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:100)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:368)
... 7 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)
at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)
... 12 more
Caused by: java.lang.SecurityException: class "com.tutorialspoint.HelloWorldConfig$$EnhancerBySpringCGLIB$$b5aece24"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:952)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666)
at java.lang.ClassLoader.defineClass(ClassLoader.java:794)
... 18 more
Ich habe recherchiert, mein problem und haben festgestellt,diese; jemand hat das gleiche problem wie ich, und es hat etwas zu tun mit der Sicherstellung, dass die ASM kompatibel mit CGLIB. Aber ich habe versucht, diese Lösung und es hat nicht geklappt, ich ging sogar soweit mit der exakt gleichen Versionen als die mitgelieferte (GBLIB 2.2.2 und ASM 3.3.1).
Was muss ich tun, um dies zu korrigieren?
Einfachheit halber, hier sind die Dateien, die ich verwende, die extrahiert wurden, von der mitgelieferten tutorial.
HelloWorldConfig.java
package com.tutorialspoint;
import org.springframework.context.annotation.*;
@Configuration
public class HelloWorldConfig {
@Bean
public HelloWorld helloWorld() {
return new HelloWorld();
}
}
HelloWorld.java
package com.tutorialspoint;
public class HelloWorld {
private String message;
public void setMessage(String message) {
this.message = message;
}
public void getMessage() {
System.out.println("Your Message : " + message);
}
}
MainApp.java
package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.*;
public class MainApp {
public static void main(String[] args) {
@SuppressWarnings("resource")
ApplicationContext ctx = new AnnotationConfigApplicationContext(
HelloWorldConfig.class);
HelloWorld helloWorld = ctx.getBean(HelloWorld.class);
helloWorld.setMessage("Hello World!");
helloWorld.getMessage();
}
}
Ebenfalls indem Sie sagt: "Aber ich habe versucht, diese Lösung und es hat nicht funktioniert" meine ich, dass das der exakt gleiche Fehler zurückgegeben.
- Welche Java-version verwenden Sie? Dies kann einen Unterschied bei der Verwendung von einem byte-code-manipulation-Bibliothek wie ASM.
- Feder-version? Sie sind Schattierungen einige der bytecode-manipulation jetzt.
- JavaSE-1.7
- sts-3.6.0
- Frühling, nicht STS.
- sorry, das war die Spring Tool Suite version, die IDE verwende ich um Frühjahr. Die Spring-version ist 4.0.2.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, ich würde sagen, die "anderen" die Sie genannt haben, hat ein anderes problem.
Auch wenn die "Last-Gezeigt-Ausnahme" ist das gleiche wie deins.
Aber wie Sie sehen können in Ihrem stacktrace, die "Quelle" ist ein SecurityException.
Den *kann Nicht geladen werden, Konfiguration Klasse*-Error ist eine Nachwirkung
Ich nehme an, es ist etwas falsch mit dem code "signation" in Ihrem Projekt
oder, durch ByteCode-Manipulation, die signation ist gebrochen.
PS:
Manchmal kann auch passieren, wenn Sie auf "SignedLibs" und "UnsignedLibs" in Ihrem Projekt.
in diesem Fall entfernen Sie die signation von der signierten Bibliotheken.
Name: org/springframework/context/weaving/AspectJWeavingEnabler.class SHA1-Digest: l50iHSxP9TMDMpK9ncKZNZuDX4M=
The import org.springframework.context cannot be resolved
.The import org.springframework.context cannot be resolved
)org.springframework.context
Bibliothek.Alle Gläser für dieses Projekt erforderlich, um ausführen:
1) org.springframework.core-3.0.1.RELEASE-A.jar
2) spring-context-3.0.4.RELEASE.jar
3) org.springframework.beans-3.0.1.RELEASE-A.jar
4) commons-logging-1.1.1.jar
5) asm-3.3.1.jar
6) cglib-2.2.2.jar
Bekommen diese Gläser,fügen Sie entweder die heruntergeladenen jars zu Ihrem Projekt direkt, oder stellen Sie die folgenden Abhängigkeiten in der pom.xml um Sie zu erhalten, automatisch heruntergeladen für Sie.
Fügen Sie diese zu Ihrem maven settings.xml Datei, wenn Sie nicht bereits vorhanden sind:
Danach führen Sie Ihr Projekt aus.
-Rechtsklick auf dein Projekt -> Ausführen als -> Maven-reinigen
-Rechtsklick auf dein Projekt -> Ausführen als -> Maven installieren
-Rechtsklick auf dein Projekt -> Ausführen als -> Java-Anwendung