[SPRING] Spring 3.0 : XML 스키마 네임 스페이스 용 Spring NamespaceHandler를 찾을 수 없다.
SPRINGSpring 3.0 : XML 스키마 네임 스페이스 용 Spring NamespaceHandler를 찾을 수 없다.
내 설치는 매우 간단합니다. 웹 프런트 엔드가 있고, 백엔드는 스프링으로 연결되어 있습니다.
나는 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>
인터네트를 통해 문제의 핵심을 클래스 로딩 할 수 있다고 읽었습니다. 의심스러운, 여기 내 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
해결법
-
==============================
1.모든 하위 항아리 대신 WEB-INF / lib 디렉토리에 직접 모든 항아리를 넣으려고 했습니까?
모든 하위 항아리 대신 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
다른 항아리들과 동일합니다.
-
==============================
2.Maven-shade-plugin을 사용하는 중에이 오류가 발생했습니다. 해결책은 다음과 같습니다.
Maven-shade-plugin을 사용하는 중에이 오류가 발생했습니다. 해결책은 다음과 같습니다.
META-INF / spring.schemas
과
META-INF / spring.handlers
빌드 할 때 Maven-shade-plugin의 변압기 ...
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.handlers</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer> </transformers> </configuration> </execution> </executions> </plugin>
(Credits : 단일 jar에 여러 개의 스프링 종속성을 병합 할 때 spring.handlers / spring.schemas가 덮어 쓰이지 않도록하는 아이디어)
-
==============================
3.http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html
http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html
maven-shade-plugin을 사용하여 비슷한 문제가 발생했습니다. 위의 예제 페이지에서 내 문제에 대한 해결책을 찾았습니다.
-
==============================
4.어떤 IDE를 사용하고 있습니까? IDE 내에서 작업하거나 배포시에만이 작업이 수행됩니까? 배포의 경우, 의존성이있는 단일 JAR을 만드는 것이 알려진 주범 인 Maven 어셈블리가 모든 JAR을 단일 디렉토리로 축소하고 Spring 스키마와 핸들러 파일이 각각 덮어 쓰기 때문에 어떤 배치 메커니즘을 사용했기 때문일 수 있습니다 다른.
어떤 IDE를 사용하고 있습니까? IDE 내에서 작업하거나 배포시에만이 작업이 수행됩니까? 배포의 경우, 의존성이있는 단일 JAR을 만드는 것이 알려진 주범 인 Maven 어셈블리가 모든 JAR을 단일 디렉토리로 축소하고 Spring 스키마와 핸들러 파일이 각각 덮어 쓰기 때문에 어떤 배치 메커니즘을 사용했기 때문일 수 있습니다 다른.
-
==============================
5.유사한 오류가 발생했지만 새로 생성 된 Roo 프로젝트의 Spring Webflow를 참조했습니다. 나를위한 해결책은 (Project) / 마우스 오른쪽 버튼 / Maven / Enable Maven Dependencies (일부 재시작 후 Tomcat으로 다시 게시)로 밝혀졌습니다.
유사한 오류가 발생했지만 새로 생성 된 Roo 프로젝트의 Spring Webflow를 참조했습니다. 나를위한 해결책은 (Project) / 마우스 오른쪽 버튼 / Maven / Enable Maven Dependencies (일부 재시작 후 Tomcat으로 다시 게시)로 밝혀졌습니다.
STS 또는 m2Eclipse가 모든 webflow jars를 웹 응용 프로그램 lib 디렉토리로 밀어 넣지 못하고있는 것으로 보입니다. 이유가 확실하지 않습니다. 그러나 Maven 종속성 처리를 활성화 한 다음 다시 빌드하면 문제가 해결 된 것 같습니다. webflow jar가 마침내 게시되고 스키마 네임 스페이스 참조를 찾을 수 있습니다.
웹 응용 프로그램이 게시 된 tomcat 디렉토리를 탐색하여 WEB-INF / lib /를 클릭하고 실행 중일 때 webflow jar 파일이 누락되었다는 사실을 알아 냄으로써이를 조사했습니다.
-
==============================
6.이 트릭도 저에게 효과적이었습니다. Eclipse에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Maven> Update Dependencies를 클릭하십시오.
이 트릭도 저에게 효과적이었습니다. Eclipse에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Maven> Update Dependencies를 클릭하십시오.
-
==============================
7.다른 사람이이 문제를 겪는 경우 Eclipse를 사용했습니다. 오른쪽 클릭 동작을 통해 프로젝트를 실행합니다. 이 오류는 J2EE 뷰에서 발생했지만 Java 뷰에서는 발생하지 않았습니다. 확실하지 않습니다 - 올바른 'lib'디렉토리에 라이브러리를 추가하는 것으로 가정합니다.
다른 사람이이 문제를 겪는 경우 Eclipse를 사용했습니다. 오른쪽 클릭 동작을 통해 프로젝트를 실행합니다. 이 오류는 J2EE 뷰에서 발생했지만 Java 뷰에서는 발생하지 않았습니다. 확실하지 않습니다 - 올바른 'lib'디렉토리에 라이브러리를 추가하는 것으로 가정합니다.
또한 Maven 프로젝트를 사용하여 m2eclipse가 종속성을 관리 할 수 있도록했습니다.
-
==============================
8.스프링 3.0.2와 스프링 - 빈즈 3.0.xsd와 같은 문제가 있습니다.
스프링 3.0.2와 스프링 - 빈즈 3.0.xsd와 같은 문제가 있습니다.
내 솔루션 :
원본 폴더에 META-INF / spring.schemas 파일을 만들고 필요한 모든 정의를 복사하십시오. spring.handlers도 생성하십시오.
PluggableSchemaResolver 클래스가 올바르게 작동하지 않는다고 생각합니다.
http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/xml/PluggableSchemaResolver.html
javadoc에서 :
"기본적으로이 클래스는 META-INF / spring.schemas 패턴을 사용하여 classpath에 파일 매핑을 찾습니다. 여러 파일이 클래스 패스에 동시에 존재할 수 있습니다."
하지만 제 경우에는이 수업이 첫 봄을 읽었을뿐입니다.
인사말. Pacov
-
==============================
9.mvn을 사용하는 경우 pom.xml에 올바른 범위 (정의 된 경우)가 있는지 확인하십시오. 한 번 테스트를 잘못 설정했지만 런타임에 필요했습니다.
mvn을 사용하는 경우 pom.xml에 올바른 범위 (정의 된 경우)가 있는지 확인하십시오. 한 번 테스트를 잘못 설정했지만 런타임에 필요했습니다.
-
==============================
10.스프링 튜토리얼을 따르면서 AOP에서의 첫 번째 시도에서이 문제를 겪는다. 나의 문제는 나의 classpath에서 spring-aop.jar를 가지지 않고 있었다. 이 튜토리얼에는 추가해야하는 다른 모든 종속성이 나열되어있다. 즉 :
스프링 튜토리얼을 따르면서 AOP에서의 첫 번째 시도에서이 문제를 겪는다. 나의 문제는 나의 classpath에서 spring-aop.jar를 가지지 않고 있었다. 이 튜토리얼에는 추가해야하는 다른 모든 종속성이 나열되어있다. 즉 :
그러나 그 중 하나는 사라졌습니다. 원래 질문에서 그 증상에 기여할 수있는 또 하나의 문제.
이클립스 (네온), 자바 SE 8, 콩 3.0, 봄 AOP 3.0, 스프링 4.3.4를 사용하고 있습니다. 이 문제는 Java 뷰 (JEE 없음)에서 보였으며 오른쪽 버튼 메뉴 -> Run As (실행) -> Java Application (Java 응용 프로그램)을 사용하여 응용 프로그램을 실행하려고 시도하는 동안 나타났습니다.
-
==============================
11.우리를 위해 문제를 해결 한 one-jar maven 플러그인을 사용해 볼 수도 있습니다. 간단히 여기의 지시 사항을 따르십시오.
우리를 위해 문제를 해결 한 one-jar maven 플러그인을 사용해 볼 수도 있습니다. 간단히 여기의 지시 사항을 따르십시오.
from https://stackoverflow.com/questions/1937767/spring-3-0-unable-to-locate-spring-namespacehandler-for-xml-schema-namespace by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 보안 - 이미 로그인 한 경우 리디렉션 (0) | 2019.01.01 |
---|---|
[SPRING] 테스트 클래스가 더러워진 후에 Spring JUnit 애플리케이션 컨텍스트를 어떻게 재설정합니까? (0) | 2019.01.01 |
[SPRING] 스프링 부트 SSL 클라이언트 (0) | 2019.01.01 |
[SPRING] 다른 환경에서 스프링 빈을 정의 할 때 일반적인 전략 (0) | 2019.01.01 |
[SPRING] junit 테스트를 개선하려면 어떻게해야합니까? (0) | 2019.01.01 |