Моя установка довольно проста: у Меня есть веб-фронтенд, бэкенд соединен проводом пружиной.
Я использую AOP для добавления уровня безопасности на моих rpc сервисах.
Это - вся польза, за исключением того, что веб-приложение прерывается на запуске:
[java] SEVERE: Context initialization failed [java] org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/aop] [java] Offending resource: ServletContext resource [/WEB-INF/gwthandler-servlet.xml]
Вот отрывок из моего xml файла конфигурации:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
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">
<aop:config>
<aop:aspect id="security" ref="securityAspect" >
<aop:pointcut id="securedServices" expression="@annotation(com.fb.boog.common.aspects.Secured)"/>
<aop:before method="checkSecurity" pointcut-ref="securedServices"/>
</aop:aspect>
</aop:config>
Я перечитал по Интернету, что это может быть мой classloading ядро проблемы. Сомнительный, с тех пор вот мой каталог WEB-INF/lib:
./WEB-INF/lib
./WEB-INF/lib/aopalliance-alpha1.jar
./WEB-INF/lib/aspectj-1.6.6.jar
./WEB-INF/lib/commons-collections.jar
./WEB-INF/lib/commons-logging.jar
./WEB-INF/lib/ehcache-core-1.7.0.jar
./WEB-INF/lib/ejb3-persistence.jar
./WEB-INF/lib/hibernate
./WEB-INF/lib/hibernate/antlr.jar
./WEB-INF/lib/hibernate/asm.jar
./WEB-INF/lib/hibernate/bsh-2.0b1.jar
./WEB-INF/lib/hibernate/cglib.jar
./WEB-INF/lib/hibernate/dom4j.jar
./WEB-INF/lib/hibernate/freemarker.jar
./WEB-INF/lib/hibernate/hibernate-annotations.jar
./WEB-INF/lib/hibernate/hibernate-shards.jar
./WEB-INF/lib/hibernate/hibernate-tools.jar
./WEB-INF/lib/hibernate/hibernate.jar
./WEB-INF/lib/hibernate/jtidy-r8-20060801.jar
./WEB-INF/lib/jabsorb
./WEB-INF/lib/jabsorb/jabsorb-1.3.1.jar
./WEB-INF/lib/jta.jar
./WEB-INF/lib/jyaml-1.3.jar
./WEB-INF/lib/postgresql-8.4-701.jdbc4.jar
./WEB-INF/lib/sjsxp.jar
./WEB-INF/lib/spring
./WEB-INF/lib/spring/org.springframework.aop-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.asm-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.aspects-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.beans-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.context-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.context.support-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.core-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.expression-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.instrument-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.instrument.tomcat-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.jdbc-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.jms-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.orm-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.oxm-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.test-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.transaction-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web.portlet-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web.servlet-3.0.0.RELEASE.jar
./WEB-INF/lib/spring/org.springframework.web.struts-3.0.0.RELEASE.jar
./WEB-INF/lib/testng-5.11-jdk15.jar
./WEB-INF/web.xml
Вы пытались поместить все свои jar-файлы прямо в каталог WEB-INF / lib
, а не в его подкаталог?
Нет WEB-INF /lib/spring/org.springframework.aop-3.0.0.RELEASE.jar
, просто WEB-INF / lib / org.springframework.aop-3.0.0.RELEASE.jar
То же самое с остальные банки.
Какую IDE (если есть) вы используете? Это происходит, когда вы работаете в среде IDE или только при развертывании? Если это развертывание, это может быть связано с тем, что какой бы механизм развертывания вы ни использовали - сборка maven, создающая один JAR с зависимостями, является известным виновником - сворачивает все ваши JAR в один каталог и схему Spring и файлы-обработчики перезаписывают друг друга.
На случай, если кто-то еще столкнется с этой проблемой, я только что использовал Eclipse; запуск проекта с помощью действия правой кнопки мыши. Эта ошибка произошла в представлении J2EE, но НЕ возникла в представлении Java. Не уверен - предполагая что-то с добавлением библиотек в правильный каталог lib.
Я также использую проект Maven, позволяющий m2eclipse управлять зависимостями.
http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html
Я столкнулся с похожей проблемой, используя maven-shade-plugin. Я нашел решение своих проблем на их странице примера выше.
У меня такая же проблема с spring 3.0.2 и spring-beans-3.0.xsd.
Мое решение:
Создайте файл META-INF / spring.schemas в исходной папке и скопируйте все необходимые определения. Создайте также spring.handler.
Я считаю, что класс PluggableSchemaResolver работает некорректно.
из документации javadoc:
"Автор по умолчанию этот класс будет искать файлы сопоставления в пути к классам, используя шаблон: META-INF / spring.schemas, позволяющий одновременному существованию нескольких файлов в пути к классам »
, но в моем случае этот класс только читает первая весна. схемы найдены.
Греттингс. pacovr