2013-06-25 3 views
0

У нас есть специальная банкомат для безопасности, которая была построена из весеннего яруса безопасности и пружинной защиты другой командой, и мы хотели бы добавить ее в наш проект Grails. Я добавил тег <import resource=classpath:META-INF/security.xml> в свой applicationContext.xml и попытался добавить необходимые объявления xmlns и xsd, но это дает мне ошибку.Добавление проекта jar to grails

Message: Configuration problem: Failed to import bean definitions from URL location [classpath:META-INF/security.xml] 
Offending resource: ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security] 
Offending resource: class path resource [META-INF/security.xml] 

Нам пришлось вручную добавить зависимости пружинной безопасности ядро, пружинной безопасность-Conf, когда мы обновили наш чистый проект Java, чтобы использовать эту баночку, мы должны сделать то же самое с Grails или есть лучший путь?

Grails 2.2 Groovy 2.0.6

И security.jar был построен с Spring Security 3.0

Любое руководство? Я просмотрел три книги Grails, которые у нас есть, и ни один из них не затрагивает добавление пользовательских библиотек в ваш проект.

Спасибо.

Edit 1.

Добавлены зависимости пружины безопасности в файл BuildConfig.groovy, как показано ниже

dependencies { 
    compile "org.springframework.security:spring-security-core:3.1.4.RELEASE" 
    compile "org.springframework.security:spring-security-config:3.1.4.RELEASE" 
} 

, который, казалось, чтобы получить меня мимо старой ошибки. Но теперь я получаю прекрасный

Error 2013-06-25 16:20:34,982 [localhost-startStop-1] ERROR context.ContextLoader - Context initialization failed 
Message: Error creating bean with name 'org.springframework.security.authentication.dao.DaoAuthenticationProvider#0': Cannot resolve reference to bean 'userService' while setting bean property 'userDetailsService'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [edu.umt.security.NetIdAuthoritiesPopulator] for bean with name 'userService' defined in class path resource [META-INF/security.xml]; nested exception is java.lang.ClassNotFoundException: edu.umt.security.NetIdAuthoritiesPopulator 
... 
Caused by CannotLoadBeanClassException: Cannot find class [edu.umt.security.NetIdAuthoritiesPopulator] for bean with name 'userService' defined in class path resource [META-INF/security.xml]; nested exception is java.lang.ClassNotFoundException: edu.umt.security.NetIdAuthoritiesPopulator 

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

ответ

1

Если в репозитории Maven недоступна банка, и вы не можете добавить зависимость в BuildConfig.groovy, вы можете добавить ее в каталог lib, но она не будет автоматически обнаружена. Запустите grails compile --refresh-dependencies, чтобы добавить его в путь к классам.

+0

Поэтому я добавил эти выполнения «org.springframework.security:spring-security-core:3.1.4.RELEASE» выполнения «org.springframework.security:spring-security-config:3.1.4.RELEASE» на мой BuildConfig, но он говорит, что ошибка не удалось решить. – idonaldson

+0

Не обращайте внимания на предыдущий комментарий, это поможет, если вы поместите их в нужную секцию. Я имел их под плагинами, и они, очевидно, принадлежат зависимым. – idonaldson

+0

Мне удалось вытащить банку с помощью частного maven repo, но я получаю ClassNotFoundException, когда я пытаюсь добавить импорт в ApplicationContext.xml. Есть ли другой способ импорта ресурсов в грайле? – idonaldson