java.сеть.MalformedURLException: неизвестный протокол: путь к классам

Я пытаюсь импортировать схему xsd с локального диска, используя schemaLocation classpath весной. Я добавил необходимый файл в путь к классам и добавил ссылку на этот файл с

15:10:19.336 [localhost-startStop-1] DEBUG o.s.b.f.xml.ResourceEntityResolver - Could not resolve XML entity [classpath:spring-social-facebook-1.1.xsd] against system root URL
java.net.MalformedURLException: unknown protocol: classpath
    at java.net.URL.<init>(Unknown Source) ~[na:1.8.0_31]
    at java.net.URL.<init>(Unknown Source) ~[na:1.8.0_31]
    at java.net.URL.<init>(Unknown Source) ~[na:1.8.0_31]

вот заголовок для моего applicationContext.XML-файле

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:beans="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:mongo="http://www.springframework.org/schema/data/mongo"     xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:social="http://www.springframework.org/schema/social"
    xmlns:facebook="http://www.springframework.org/schema/social/facebook"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
            http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.7.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/social http://www.springframework.org/schema/social/spring-social.xsd
            http://www.springframework.org/schema/social/facebook classpath:spring-social-facebook-1.1.xsd">

Я использую spring 4.1 с и spring-bean версии 3.0.

2 ответов


вы не должны возиться с другими местоположениями и использовать значения по умолчанию. Для Spring Social Facebook вы должны использовать http://www.springframework.org/schema/social/spring-social-facebook-1.1.xsd или, предпочтительно, версия менее одного http://www.springframework.org/schema/social/spring-social-facebook.xsd.

Spring всегда сначала загружает xsd из банок из пути к классам. Весенние корабли с таможней EntityResolver на PluggableSchemaResolver, который использует разные spring.schemas файлы META-INF каталог файлов Spring jar.

единственные причины получить ошибку, как вы получаете (и почему вы пытаетесь обойти его)

  1. вы не включили spring-social-facebook необходимые зависимости
  2. вы включили неправильные зависимости spring-social-facebook
  3. вы используете несовместимые весенние и весенние социальные версии.

Я бы поставил на Вариант 2, не имея всех версий 1.1.0 spring-social-facebook, но смешивая версии банок.


Я решил проблему, так как я использовал неправильную банку spring-social-web, но не spring-social-facebook, которые содержат xsd. Мне больше не нужно использовать classpath. спасибо Deinum М..