3

SpringフレームワークでJAX-WSを実装しています。

以下は私のSpring applicationContext.xmlです

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xmlns:ws="http://jax-ws.dev.java.net/spring/core"
xmlns:wss="http://jax-ws.dev.java.net/spring/servlet"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://jax-ws.dev.java.net/spring/core
    http://jax-ws.dev.java.net/spring/core.xsd
    http://jax-ws.dev.java.net/spring/servlet
    http://jax-ws.dev.java.net/spring/servlet.xsd
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    ">

ただし、Eclipseは不平を言っています:

参照ファイルにエラーが含まれています ( http://jax-ws.dev.java.net/spring/servlet.xsd )。

調べたところ、http: //jax-ws.dev.java.net/spring/servlet.xsdという URL が見つかりました 。存在しません。代わりに、次の場所に移動するようです: http://jax-ws.java.net/spring/servlet.xsd (このリンクはブラウザで開くことができます)

そのため、XSD スキーマ URL を http://jax-ws.dev.java.net/spring/servlet.xsd から http://jax-ws.java.net/spring/servlet.xsdに更新しました。

今、私の applicationContext.xml は次のようになります。

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xmlns:ws="http://jax-ws.dev.java.net/spring/core"
xmlns:wss="http://jax-ws.dev.java.net/spring/servlet"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://jax-ws.dev.java.net/spring/core
    http://jax-ws.java.net/spring/core.xsd
    http://jax-ws.dev.java.net/spring/servlet
    http://jax-ws.java.net/spring/servlet.xsd
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    ">

実際、この変更により、Eclipse エラーはなくなりました。問題は、Tomcat 7 で Web サービスを起動した後、代わりに次のランタイム エラーが発生することです。

org.xml.sax.SAXParseException; 行番号: 20; 列番号: 29; schema_reference.4: スキーマ ドキュメント ' http://jax-ws.java.net/spring/servlet.xsd ' の読み取りに失敗しました。1) ドキュメントが見つからなかったためです。2) ドキュメントを読み取ることができませんでした。3) ドキュメントのルート要素は ではありません。com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198) で com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.warning(ErrorHandlerWrapper.java:99) でcom.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:433) で

お知らせ下さい。

どうもありがとうございました。よろしく、

4

4 に答える 4

7

問題は、場所をhttp://jax-ws.dev.java.net/spring/servlet.xsdからhttp://jax-ws.java.net/spring/servlet.xsdに変更することです。後者は正しいURLですが、jaxws-spring.jar META-INF/spring.schemaファイルで定義されているものと一致しません。そのファイルには次の内容が含まれている必要があります

http\://jax-ws.dev.java.net/spring/core.xsd=spring-jax-ws-core.xsd
http\://jax-ws.dev.java.net/spring/servlet.xsd=spring-jax-ws-servlet.xsd
http\://jax-ws.dev.java.net/spring/local-transport.xsd=spring-jax-ws-local-transport.xsd

Springはこのマッピングを使用して、インターネットではなくクラスパス内のスキーマを検索します。これらのスキーマファイルは、jaxws-spring.jarファイルのルートにあります。

ハンドラーとスキーマの登録をご覧ください

于 2013-02-07T05:23:11.033 に答える
1

リソースが移動しました。最終的な構成は次のとおりです。

xsi:schemaLocation="http://www.springframework.org/schema/beans        
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
        http://jax-ws.dev.java.net/spring/core 
        http://jax-ws.java.net/spring/core.xsd
        http://jax-ws.dev.java.net/spring/servlet 
        http://jax-ws.java.net/spring/servlet.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd"
        default-lazy-init="true">
于 2016-09-07T08:00:42.030 に答える
1

プロジェクトでSpringを使用していますか?同じ問題がありましたが、mavenの依存関係にspring-jaxwsを含めると問題は解決しました。実際、そのjarでMETA-INF/spring.schemasファイルがXSD の場所の再定義

于 2014-02-08T14:18:36.017 に答える
0

おそらくあなたの場合ではないでしょう。しかし、そのようなシナリオでは、クリーンにして新しいビルドを作成します。2つのjarが存在する場合、古いスプリングjarとそこからのxsdである理由が取られます。それが他の人に役立つことを願っています....一般的に、この例外は多くの理由でスローされます。

于 2013-02-19T17:08:49.820 に答える