7

私はここで元従業員が残したシステムを仕事で実行しようとしていますが、それを実行するのに問題があります。

XSDがリモートアクセスで実行されている場合:

<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"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    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-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/tx
                           http://www.springframework.org/schema/tx/spring-tx.xsd">

見つからない例外が発生します。

Failed to read schema document 'http://www.springframework.org/schema/context/spring-context-3.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>.

また、XSDがローカルアクセスで実行されている場合:

<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"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           classpath:org/springframework/beans/factory/xml/spring-beans-3.0.xsd
           http://www.springframework.org/schema/tx
           classpath:org/springframework/transaction/config/spring-tx-3.0.xsd
           http://www.springframework.org/schema/context  
           classpath:org/springframework/context/config/spring-context-3.0.xsd
           http://www.springframework.org/schema/tool
           classpath:org/springframework/beans/factory/xml/spring-tool-3.0.xsd">

これはこの例外を与えます:

C:\Users\claudiomazur>java -jar c:\temp\fin\c.jar  
0 [AWT-EventQueue-0] INFO support.ClassPathXmlApplicationContext  - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@4fa52fdf: startup date [Thu Sep 06  
11:22:59 BRT 2012]; root of context hierarchy  
45 [AWT-EventQueue-0] INFO xml.XmlBeanDefinitionReader  - Loading XML bean definitions from class path resource [context.xml]  
Exception in thread "AWT-EventQueue-0" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for  
XML schema namespace [http://www.springframework.org/schema/context]  
Offending resource: class path resource [context.xml]  

        at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68) 

この問題を解決するためのアイデアはありますか?

強い抱擁!!

4

3 に答える 3

9

Spring XDSは定義されており、Springjarとともに出荷されます。たとえば、spring-context.jarにはが含まれますspring-context-3.0.xsd。(spring-context.jar/META-INF/spring.schemaを参照)

したがって、プロジェクトにこのjarがあることを確認してください。

つまり、「リモート」と呼ばれるものは実際にはリモートではありません。そして、私はあなたが「ローカルアクセス」と呼んでいるものを見たことがないので、なぜ「リモート」(リモートではない)のものがすべてのxsdsで動作するのかを確認しようとします。


spring.handlersデスクトッププログラムであり、他のすべての展開されたjarを含む単一のjarを使用する場合は、単一のコンテンツとspring.schames異なるspring-xxx.jarのファイルが(2)で結合されるように注意する必要があります。 hunge」ファイル。そのため、最終的にこの(2つの)ファイルにはすべてのスキーマ名とハンドラー名が含まれます。

于 2012-09-10T12:00:47.773 に答える
3

SPRINGXSDがjarファイルと一緒に出荷されるのは事実です。

これらのXSDが保存されている情報:

  1. XMLファイルで、beans名前空間を使用しており、調査する必要があるとします。

    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    
  2. META-INFフォルダにあるファイル「spring-schemas」spring-beans-4.0.1.RELEASE.jarを確認してください。このファイルのサンプルコンテキストは次のとおりです。

    http\://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
    =org/springframework/beans/factory/xml/spring-beans-4.0.xsd
    
    http\://www.springframework.org/schema/beans/spring-beans.xsd 
    =org/springframework/beans/factory/xml/spring-beans-4.0.xsd
    
  3. したがって

         http\://www.springframework.org/schema/beans/spring-beans.xsd  is mapped to      
         org/springframework/beans/factory/xml/spring-beans-4.0.xsd
    

    あなたの瓶に

于 2014-07-10T06:55:17.703 に答える
2

wgethttp://www.springframework.org/schema/context/spring-context-3.0.xsdを実行してみてください

should be something like: wget http://www.springframework.org/schema/context/spring-context-3.0.xsd
--2012-09-10 15:56:05--  http://www.springframework.org/schema/context/spring-context-3.0.xsd
Resolving www.springframework.org... 205.140.197.88
Connecting to www.springframework.org|205.140.197.88|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 19651 (19K) [text/xml]
Saving to: “spring-context-3.0.xsd”

100%[=====================================================================>] 19,651      24.6K/s   in 0.8s    

2012-09-10 15:56:06 (24.6 KB/s) - “spring-context-3.0.xsd” saved [19651/19651]

xsdスキーマの取得に問題がある場合、このスキーマを継承したxmlファイルでの作業が困難になります。

2番目のケースでは、クラスパスにspring-*-3.0.xsdファイルがありません。

于 2012-09-10T12:01:34.583 に答える