Проблема с контекстом аннотации пружины с разными модулями - PullRequest
1 голос
/ 28 сентября 2010

Greeteng.

Я подал заявку на основе конфигурации аннотации пружины.Это приложение запланировано, я создаю его с Maven.Я сканирую приложение, чтобы найти конфигурации в одном модуле.


public class ClientUserDAOImplTest {</p>

<pre><code>private static UserDAOLocal userDAOLocal;

@BeforeClass
public static void start() {
    beginDate = new Date();
    ApplicationContext ac = new AnnotationConfigApplicationContext("package");
    userDAOLocal = ac.getBean(UserDAOLocal.class);
}

... Я сделал класс с аннотацией @Configuration в другом модуле.Когда я пытаюсь создать ApplicationContext, он завершается неудачно с таким результатом:


 -------------------------------------------------------------------------------
Test set: package.ClientUserDAOImplTest
 -------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.09 sec (AnnotationConfigApplicationContext.java:75)
        at package.UserDAOImplTest.start(ClientUserDAOImplTest.java:29)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
        at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Caused by: net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
        at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:237)
        at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
        at net.sf.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
        at org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:118)
        at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:89)
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:238)
        ... 26 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)
        at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)
        ... 31 more
Caused by: java.lang.SecurityException: class "package.ClientInitConfig$$EnhancerByCGLIB$$cee25681"'s signer information does not match signer information of other classes in the same package
        at java.lang.ClassLoader.checkCerts(ClassLoader.java:807)
        at java.lang.ClassLoader.preDefineClass(ClassLoader.java:488)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:626)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        ... 37 more

litte FIX.

Проблема находится на стадии тестированияИтак, jar для другого модуля уже готов, а jar для тестов первого модуля не создается и запускается как просто файлы .class.

1 Ответ

0 голосов
/ 28 сентября 2010

Если конфигурация аннотирована и находится в другом базовом пакете, чем "package", контекст ее не поднимет. Вам необходимо указать контекст приложения для сканирования и других пакетов.

РЕДАКТИРОВАТЬ Извините, пропустил кишки исключения. Вы подписали банки по-другому? Они должны быть подписаны тем же сертификатом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...