web-dev-qa-db-ja.com

インターネット接続がないときにSpring schemaLocationが失敗する

私はSpringを使用しています。application-context.xmlには次の定義があります。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:util="http://www.springframework.org/schema/util"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:aop="http://www.springframework.org/schema/aop"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:p="http://www.springframework.org/schema/p"
   xmlns:security="http://www.springframework.org/schema/security"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
   http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
   http://www.springframework.org/schema/util 
   http://www.springframework.org/schema/util/spring-util-2.0.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-2.1.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx.xsd
   http://www.springframework.org/schema/aop
   http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
   http://www.springframework.org/schema/security
   http://www.springframework.org/schema/security/spring-security-2.0.xsd"
   >

.....

インターネット接続が失われた場合、Tomcatまたはjetty経由でアプリケーションを実行できません。

それは与えます:

[main] WARN  org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Ignored XML validation warning
org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document '/spring-beans-2.0.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
    at com.Sun.org.Apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.Java:195)
    at com.Sun.org.Apache.xerces.internal.util.ErrorHandlerWrapper.warning(ErrorHandlerWrapper.Java:96)
    at com.Sun.org.Apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.Java:380)
    at com.Sun.org.Apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.Java:318)
    at com.Sun.org.Apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.Java:2541)
    at com.Sun.org.Apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaWarning(XSDHandler.Java:2532)
    at com.Sun.org.Apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.Java:1836)
    at com.Sun.org.Apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.Java:531)
    at com.Sun.org.Apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.Java:552)
    at com.Sun.org.Apache.xerces.internal.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.Java:2408)
    at com.Sun.org.Apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.Java:1753)
    at com.Sun.org.Apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.Java:685)
    at com.Sun.org.Apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.Java:400)
    at com.Sun.org.Apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.Java:626)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.Java:3095)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.Java:921)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.Java:648)
    at com.Sun.org.Apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.Java:140)
    at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.Java:510)
    at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.Java:807)
    at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.Java:737)
    at com.Sun.org.Apache.xerces.internal.parsers.XMLParser.parse(XMLParser.Java:107)
    at com.Sun.org.Apache.xerces.internal.parsers.DOMParser.parse(DOMParser.Java:225)
    at com.Sun.org.Apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.Java:283)
    at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.Java:75)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.Java:396)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.Java:342)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.Java:310)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.Java:143)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.Java:178)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.Java:149)
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.Java:124)
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.Java:92)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.Java:123)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.Java:423)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:353)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.Java:255)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.Java:199)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.Java:45)
    at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.Java:548)
    at org.mortbay.jetty.servlet.Context.startContext(Context.Java:136)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.Java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.Java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.Java:467)
    at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.Java:115)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:50)
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.Java:152)
    at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.Java:156)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:50)
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.Java:152)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.Java:130)
    at org.mortbay.jetty.Server.doStart(Server.Java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:50)
    at org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.Java:132)
    at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.Java:441)
    at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.Java:383)
    at org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.Java:210)
    at org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.Java:184)
    at org.Apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.Java:483)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.Java:678)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.Java:553)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.Java:523)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.Java:371)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.Java:332)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.Java:181)
    at org.Apache.maven.DefaultMaven.doExecute(DefaultMaven.Java:356)
    at org.Apache.maven.DefaultMaven.execute(DefaultMaven.Java:137)
    at org.Apache.maven.cli.MavenCli.main(MavenCli.Java:356)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:39)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
    at Java.lang.reflect.Method.invoke(Method.Java:597)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.Java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.Java:255)
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.Java:430)
    at org.codehaus.classworlds.Launcher.main(Launcher.Java:375)
2009-11-13 15:31:25,675 [main] ERROR org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 23 in XML document from class path resource [application-context.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'beans'.
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.Java:404)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.Java:342)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinit........

それを修正する方法はありますか?

99
Altug

名前空間が正しく構成され、XSDファイルがクラスパスにある場合、schemaLocation URLでclasspath:プロトコルを使用する必要はありません。

Spring doc " ハンドラーとスキーマの登録 "は、その方法を示しています。

あなたの場合、問題はおそらく、クラスパス上のスプリングコンテキストjarが2.1ではないことでした。そのため、プロトコルをクラスパスに変更し、クラスパスに特定の2.1 XSDを追加することで問題を解決しました。

私が見たものから、spring- * jarに含まれるメインXSDに対して定義された2つのスキーマがあります。 1回はバージョン付きのスキーマURLを解決し、もう1回はバージョンなしで解決します。

例として、spring-context-3.0.5.RELEASE.jarのspring.schemasコンテンツのこの部分を参照してください。

http\://www.springframework.org/schema/context/spring-context-2.5.xsd=org/springframework/context/config/spring-context-2.5.xsd
http\://www.springframework.org/schema/context/spring-context-3.0.xsd=org/springframework/context/config/spring-context-3.0.xsd
http\://www.springframework.org/schema/context/spring-context.xsd=org/springframework/context/config/spring-context-3.0.xsd

これは、(xsi:schemaLocationで)

http://www.springframework.org/schema/context/spring-context-2.5.xsd 

に対して検証されます

org/springframework/context/config/spring-context-2.5.xsd 

クラスパスで。

http://www.springframework.org/schema/context/spring-context-3.0.xsd 

または

http://www.springframework.org/schema/context/spring-context.xsd

に対して検証されます

org/springframework/context/config/spring-context-3.0.xsd 

クラスパスで。

http://www.springframework.org/schema/context/spring-context-2.1.xsd

は定義されていないため、SpringはschemaLocationで定義されたリテラルURLを使用して検索します。

110
David Resnick

解決しました

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:security="http://www.springframework.org/schema/security"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
       http://www.springframework.org/schema/util 
       http://www.springframework.org/schema/util/spring-util-2.0.xsd
       http://www.springframework.org/schema/context
       classpath:spring-context-2.1.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
       http://www.springframework.org/schema/security
       http://www.springframework.org/schema/security/spring-security-2.0.xsd"
       >

classpath:spring-context-2.1.xsdは、オフラインモード(インターネット接続なし)で作業するためのキーです。また、application-context.xmlファイルの近く(同じディレクトリ)spring-context-2.1.xsdをコピーしました

28
Altug

このような何かが私のために働いた。

xsi:schemaLocation=
"http://www.springframework.org/schema/beans 
             classpath:org/springframework/beans/factory/xml/spring-beans-3.0.xsd
http://www.springframework.org/schema/context 
             classpath:org/springframework/beans/factory/xml/spring-context-3.0.xsd"
17
godlikeNoob

誰かが私と同じルート経由でここに到着した場合-Spring JARを含むすべての依存関係を持つ単一のJARを構築していたため、この問題にぶつかりました。その結果、spring.schemasファイルのいくつかのMETA-INFSpring JARのディレクトリが上書きされました。

私はここで提案された解決策を見つけました: mavenでスプリングベースの実行可能jarを作成する方法?

6
Ed .

今日、同様の問題に遭遇しました。私の場合、原因はspringframework.orgが停止したことに加えて、シェードプラグインでした。次のスニペットは問題を解決しました。

<transformer implementation="org.Apache.maven.plugins.shade.resource.AppendingTransformer">
   <resource>META-INF/spring.schemas</resource>
</transformer>
<transformer implementation="org.Apache.maven.plugins.shade.resource.AppendingTransformer">
    <resource>META-INF/spring.handlers</resource>
</transformer>

HTH誰か

5
zackurey

spring.handlersおよびspring.schemasファイルがクラスパス上にあり、適切なコンテンツを持っていることを確認する必要があります。

これは、ClassLoader.getResource(..)で実行できます。ランタイム環境でリモートデバッガーを使用してメソッドを実行できます。拡張可能なXMLオーサリングのセットアップについては、 Spring Reference B.5。ハンドラーとスキーマの登録 で説明されています。

通常、ファイルは、Spring jar(springframework.jar/META-INF /)およびSpringを開始できるクラスパスにある必要があります。

4
Thomas Jung

クラスパスを見つける

Eclipseを使用している場合、対応するjarファイルをクリックします。ジャンプ-> META-INF->ファイルspring.schemasを開く

以下のような行が表示されます。

http://www.springframework.org/schema/context/spring-context.xsd=org/springframework/context/config/spring-context-3.1.xsd

=の後にコピーし、以下のようにBeanを構成します。

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:rabbit="http://www.springframework.org/schema/rabbit" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/rabbit classpath:org/springframework/amqp/rabbit/config/spring-rabbit-1.1.xsd http://www.springframework.org/schema/beans classpath:org/springframework/beans/factory/xml/spring-beans-3.1.xsd http://www.springframework.org/schema/context classpath:org/springframework/context/config/spring-context-3.1.xsd http://www.springframework.org/schema/util classpath:org/springframework/beans/factory/xml/spring-util-3.1.xsd">

2

この問題がありました。後世のために、私の例外は:

org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 117;
schema_reference.4: Failed to read schema document
'http://www.springframework.org/schema/beans/spring-beans-4.2.xsd'

Mavenで指定されたspring-beansのバージョンpom.xml4.1.xであり、特定の.xsdがクラスパスで見つからなかったことに気付いたときに解決しました。

私は通常オンラインであるため、これは長い間マスクされていたので、オフラインになるとビルドが「壊れた」と思いました。しかし、それは本当にそれとは何の関係もありませんでした。 pom.xmlの正しいバージョン、つまりspring-beansを指定するために4.2.xを更新すると、修正されました。

1
Stewart

これを行うことで問題を解決しました。

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(false); // This avoid to search schema online
factory.setAttribute("http://Java.Sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
factory.setAttribute("http://Java.Sun.com/xml/jaxp/properties/schemaSource", "TransactionMessage_v1.0.xsd");

このアプリケーションは、Javaスタンドアロンオフラインアプリであることに注意してください。

1
jyz

Bean定義にスキーマの場所を追加する必要があります。そうすると、ネット上で取得する代わりにクラスパスで見つけることができます。あなたのフォーマットの問題を考えると、私はあなたがすでにこれをしていないと100%確信していません。

<?xml version="1.0" encoding="UTF-8"?>
<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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<!-- empty: the beans we use are in the base class's context. -->
</beans>
1
bmargulies

問題は、アプリケーションで使用するJARファイルにあります。

私がやったことは、私が使用しているバージョンに一致するSPRING-CORE、SPRING-BEANS、SPRING-CONTEXT、SPRING-TXのJARを取得することでした。 META-INFフォルダー内で、これらのJARに含まれるすべてのspring.handlersとspring.schemasを連結しました。

1石で2羽の鳥を殺し、スキーマの問題を解決したため、これはオフラインモードでも正しく機能します。

追伸SHADEとトランスフォーマーのmavenプラグインを試しましたが、うまくいきませんでした。

1

開発にEclipseを使用している場合、EclipseのSTSプラグインを[Eclipseの特定のバージョンのmarketPlaceからインストールすると役立ちます。

プロジェクト内のフォルダー(通常はリソース)に新しい構成ファイルを作成しようとすると、オプションには「Spring Folder」があり、「Spring Bean Definition File」オプションSpring> Spring Bean Configuation Fileを選択できます。

このオプションを選択すると、手順に従うときに、名前空間と特定のバージョンを選択するように求められます。

そのため、存在しないjarまたは古いバージョンを持つ可能性を排除できます。

画像も投稿したでしょうが、私の評判はかなり低いです。

1

関連するSpring jarファイルがランタイムクラスパスにあることを確認してください。私の場合、これには、ランタイムクラスパスからspring-tx-4.3.4.RELEASE.jarがありませんでした。このjarを追加した後、問題は解決しました。

0
Hari

私もこのような問題に遭遇しました。私の場合、私の解像度はかなり異なります。これが私の春のコンテキストxmlファイルです。

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

Springがspring依存関係内で最新のxsdバージョンを使用するように、xsdバージョンを指定していません。私のアプリケーションが使用したスプリングバージョンはspring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASEで、アプリケーションをjarにアセンブリしたとき、すべての春の依存関係は私のクラスパスに存在します。ただし、Springアプリケーションコンテキストの起動中に次のエラーを受け取りました。

org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/beans/spring-beans.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.

いくつかの苦労したトラブルシューティングの後、問題は私のjarファイルのMETA-INFフォルダー内のindex.listに起因することがわかりました。 index.listファイルでは、Spring名前空間ハンドラーを見つけて、Springアプリケーションコンテキストxmlを正しく解析できません。この春の問題について詳しく読むことができます SPR-5705

maven-jar-pluginからインデックスを削除することで、問題を解決することができます。同じ問題を抱えている人々にとって、これが時間をいくらか節約することを願っています。

0
Andy Ng

Spring-contextバージョン4.0.6とspring-securityバージョン4.1.0を使用しているときに同じ問題が発生しました。

私のpomとsecurity xml-> schemaLocationでspring-securityバージョンを4.0.4に変更すると(spring-securityの4.0.6が利用できないため)、インターネットなしでコンパイルされます。

したがって、次の方法でもこれを解決できます。

  • spring-securityをspring-contextより古いバージョンまたは同じバージョンに変更する。

  • spring-contextをspring-securityよりも新しいバージョンまたは同じバージョンに変更する。

(Spring-ContextはSpring-Securityの新しいバージョンまたは同じバージョンになります)

0
Yasitha Bandara

プラットフォームにインターネット接続がなく、Eclipseを使用している場合は、次の手順に従ってください(問題が解決します)

  1. 正確なxsdファイルを見つけます(これらのファイルをjarから解凍できます。たとえば、spring-beans-x.y.z.RELEASE.jarのspring-beans-x.y.xsd)
  2. これらのxsdファイルをEclipse XMLカタログに追加します。 (設定-> XML-> XMLカタログ、ファイルの追加)
  3. これらのファイルの場所を構成ファイルに追加します。 (注意して、ファイルの正確なバージョンを書いてください)

例:

xsi:schemaLocation = " http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-xyxsd "

0
gbii

この議論のいくつかの側面を追加したいと思います。 Windows OSでは、たとえば次の例のように、スキーマを含むjarファイルがパスにスペース文字を含むディレクトリに保存されていることを観察しました

"c:\Program Files\myApp\spring-beans-4.0.2.RELEASE.jar"

オフラインでも動作するスタンドアロンアプリケーションを開発する場合、次の方法でスキーマの場所のURLを指定するだけでは不十分です。

<beans
 xsi:schemaLocation="
   http://www.springframework.org/schema/beans org/springframework/beans/factory/xml/spring-beans-2.0.xsd"
    />

このようなスキーマの場所のURL解決の結果は、次のようなパスを持つファイルであることを学びました

"c:\Program%20Files\myApp\spring-beans-4.0.2.RELEASE.jar"

パスにスペース文字が含まれていない他のディレクトリからアプリケーションを起動したとき、スキーマの場所の解決はうまくいきました。誰かが同様の問題に直面したかもしれませんか?それにもかかわらず、私はクラスパスプロトコルが私の場合うまく機能することを発見しました

<beans
 xsi:schemaLocation="
   http://www.springframework.org/schema/beans classpath:org/springframework/beans/factory/xml/spring-beans-2.0.xsd"
    />
0
Damiano