5

にエントリがありますservlet.xml

xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr

さて、私が思うに、dwrは、使用するプレフィックスです。

<dwr:configuration>
    <dwr:convert type="bean" class="com.abc.bean.MyBean" />
</dwr:configuration>

ここで問題となるのは、サイトhttp://www.directwebremoting.orgがダウンしている場合、アプリケーションがBeanを作成できないことです。

  • beanfactoryがBeanを作成するたびに、このWebサイトにアクセスする予定ですか?

  • 彼らのウェブサイトにアクセスせずにdwrを使用できるようにするための代替手段はありますか?


完全なヘッダー:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
       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-2.0.xsd 
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-2.0.xsd 
       http://www.directwebremoting.org/schema/spring-dwr 
       http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd"> 
4

3 に答える 3

12

これはXML名前空間です。これは、XML識別子(タグなど)が一意であることを確認するために使用されます。名前空間(.NET名前空間など)でラップするだけです。

名前空間は単なる識別子であり、Web上の実際の場所ではありません。

XML名前空間は一意である必要があります。そのため、多くの企業が名前空間で* .comドメイン名を使用しています。これは、他の誰もそれを使用できない(または使用すべきではない)ためです。

ただし、使用している「疑似URL」には物理URLがなく、「 www.directwebremoting.org」ドメインが停止または中止された場合でも、コードは機能します。

それは単なる名前であり、名前に他なりません。その「URL」の背後に物理ファイルは存在しません。

更新:わかりました、ここに別の問題があります:

<beans xmlns="http://www.springframework.org/schema/beans"
       ...........
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-2.0.xsd   
       http://www.directwebremoting.org/schema/spring-dwr 
     ==>  http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd">   <==

これらのxsi:schemaLocationエントリが原因です。もちろんspring-dwr-2.0.xsd、そのサイトのURLを介してXMLスキーマファイル()を直接参照しているため、これらのエントリは稼働中のそのサイトへの依存関係を引き起こします。

これらの*.xsdファイルをローカルディスクにダウンロードして、そこから使用することもできます。XML名前空間自体は名前に他なりませんが、このschemaLocationはhttp://www.directwebremoting.org/schema/spring-dwr-2.0.xsd、明らかに実際の物理URLであり、サイトがダウンしている場合は機能しません。

于 2009-10-12T06:03:32.763 に答える
8

この問題は、名前空間自体に直接関係しているのではなく、このdwr名前空間のスキーマの場所に関係している可能性があります。

これにより、名前空間識別子として使用されるURIは「何でも」であり、ファイルを処理するためにアクセスされません(グローバルに一意の名前空間を持つための便利な方法として、インターネットドメインベースの名前空間IDを使用します)。スキーマの場所に効果的にアクセスします。

この問題を修正するために、スキーマをダウンロードして信頼できるサイトに公開し、それを参照するXMLファイル内のスキーマの場所を変更できる場合があります。

「スキーマ」はDTDであり、ここではXSDファイルの場合のように、最近ではより一般的になっています。実際には、以下をダウンロードする必要があります。

  http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd

次に、spring-dwr-2.0.xsdを独自のサーバーで公開し(または、これらがオンラインアプリケーションでない場合は、ディレクトリで利用できるようにすることができます)、XMLヘッダーの対応する行を読み取りに変更します(ここでMyOwnDomainなどはもちろん実際のサイトを反映しています):

   http://www.directwebremoting.org/schema/spring-dwr 
   http://www.MyOwnDomain.com/SomeDirectory/spring-dwr-2.0.xsd">

このように、directwebremoting.orgサイトが利用できない場合でも、XML処理ロジックに遅延はありません。

注意、問題のXSDが他のスキーマを参照している可能性があります。その場合は、これらをダウンロードして、XSDがこれらの新しい場所を指していることを確認してください。

于 2009-10-12T06:04:35.743 に答える
0

DTDはスキーマにすることができます(XDRなどもあります)。スキーマは、入力XMLデータの構造(要素、属性、属性データ型など)を定義します。

于 2009-10-12T07:17:36.407 に答える