복붙노트

[SPRING] 메이븐 봄 - 요소 '콩'의 선언을 찾을 수 없습니다

SPRING

메이븐 봄 - 요소 '콩'의 선언을 찾을 수 없습니다

나는 스프링 프로젝트를 maven (jar로 패키지 됨)의 사용법으로 구축했다 (의존성은 별도의 디렉토리에 복사되고 classpath에 추가된다)

java -jar로 실행하고 싶습니다.

문제는 내가 그것을 실행할 때 나는 얻는다 :

원인 : org.xml.sax.SAXParseException : cvc-elt.1 : 선언을 찾을 수 없습니다.  요소 '콩'의.

춘계. 춘계와 스프링 헨드 러는 봄철 콩 등 몇 개의 항아리에 위치하기 때문에 발생합니다.

음영 플러그인을 사용하여 모든 종속성을 풀고 spring.schemas 및 spring.handlers의 내용을 연결하지 않으려는 경우이를 해결할 방법이 있습니까?

내 프로젝트에서 xsd 파일을 저장하지 않고 내 위치를 가리 키도록 schemaLocation을 변경하는 일도 피하고 싶습니다.

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:camel="http://camel.apache.org/schema/spring"
    xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

    <camel:camelContext>
        <camel:routeBuilder ref="fakeRouteBuilder"/>
    </camel:camelContext>

    <bean id="fakeRouteBuilder" class="<className>" />


</beans>

해결법

  1. ==============================

    1.이 문제가 발생할 수있는 두 가지 상황을 알고 있습니다.

    이 문제가 발생할 수있는 두 가지 상황을 알고 있습니다.

  2. ==============================

    2.XSD가 스프링 항아리에 포함될 것이라고 생각합니다. 문제가되지 않아야합니다.

    XSD가 스프링 항아리에 포함될 것이라고 생각합니다. 문제가되지 않아야합니다.

  3. ==============================

    3.스프링 jar는 META-INF / spring.handlers와 META-INF / spring.schemas 파일을 포함합니다. 의존성을 하나의 항아리로 모으는 경우 파일을 덮어 쓰지 않으려면 maven Shade 플러그인을 사용할 수 있습니다 :

    스프링 jar는 META-INF / spring.handlers와 META-INF / spring.schemas 파일을 포함합니다. 의존성을 하나의 항아리로 모으는 경우 파일을 덮어 쓰지 않으려면 maven Shade 플러그인을 사용할 수 있습니다 :

    http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#AppendingTransformer

  4. ==============================

    4.제가 프록시를 사용했기 때문에 같은 문제가 발생했습니다. Tomcat 6에서 Spring MVC 애플 리케이션을 실행했다. 그냥 내 catalina.bat 파일의 biginning에서 다음 줄을 추가하고 내 문제를 해결 :

    제가 프록시를 사용했기 때문에 같은 문제가 발생했습니다. Tomcat 6에서 Spring MVC 애플 리케이션을 실행했다. 그냥 내 catalina.bat 파일의 biginning에서 다음 줄을 추가하고 내 문제를 해결 :

    set JAVA_OPTS=%JAVA_OPTS% -Dhttp.proxyHost=XXXX -Dhttp.proxyPort=YYYYY -Dhttp.proxyUser=ZZZZ -Dhttp.proxyPassword=XXXXXX
    
  5. ==============================

    5.원격 리소스 캐시, Window> Preferences> General> Network Connection> Cache에서 xsd 파일을 지우면 비슷한 문제를 해결할 수있었습니다.

    원격 리소스 캐시, Window> Preferences> General> Network Connection> Cache에서 xsd 파일을 지우면 비슷한 문제를 해결할 수있었습니다.

  6. ==============================

    6.maven-assembly-plugin에 의해 생성 된 META-INF / INDEX.LIST 파일 또한 범인이 될 수 있습니다.

    maven-assembly-plugin에 의해 생성 된 META-INF / INDEX.LIST 파일 또한 범인이 될 수 있습니다.

    원인 : Java 버그 : "ClassLoader.getResources ()는 jar 인덱싱을 사용할 때 인스턴스를 하나만 반환합니다"

    해결책 : 어셈블리 설명자에서 인덱싱을 비활성화하십시오.

    <indexed>false</indexed>
    

    자원: 봄 JIRA SPR-5705 JDK-6957241 jar 색인을 사용하는 경우 ClassLoader.getResources ()가 인스턴스를 하나만 반환합니다.

  7. ==============================

    7.XSD 선언에 http : //가 너무 많이 있습니다. 이 시도:

    XSD 선언에 http : //가 너무 많이 있습니다. 이 시도:

    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:camel="http://camel.apache.org/schema/spring"
        xsi:schemaLocation="
           http://www.springframework.org/schema/beans    
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://camel.apache.org/schema/spring
           http://camel.apache.org/schema/spring/camel-spring.xsd">
    

    (당신의 http : // http : //www.springframework.org/schema/beans/spring-beans-2.5.xsd)

  8. ==============================

    8.내 XSD url이 JAR 파일에 정의 된 XSD 위치와 다른 다른 위치를 가리키면 오류가 발생합니다. 예를 들어 spring-beans-3.0.xsd 대신 spring-beans-2.5.xsd 대신 spring-beans-3.0.xsd를 사용할 수 있습니다.

    내 XSD url이 JAR 파일에 정의 된 XSD 위치와 다른 다른 위치를 가리키면 오류가 발생합니다. 예를 들어 spring-beans-3.0.xsd 대신 spring-beans-2.5.xsd 대신 spring-beans-3.0.xsd를 사용할 수 있습니다.

  9. ==============================

    9.또한이 문제를 해결하기 위해 여기에서 조언을 사용할 수 있습니다.

    또한이 문제를 해결하기 위해 여기에서 조언을 사용할 수 있습니다.

  10. ==============================

    10.나는 정확히 같은 문제가 있었는데 그것이 2 가지 주요한 이유 때문이라고 생각합니다 :

    나는 정확히 같은 문제가 있었는데 그것이 2 가지 주요한 이유 때문이라고 생각합니다 :

  11. from https://stackoverflow.com/questions/4972034/maven-spring-cannot-find-the-declaration-of-element-beans by cc-by-sa and MIT license