2017-03-08 103 views
0

mvn clean installを実行しているときに、外部ファイルに到達できないという次のエラーが発生します。accessExternalDTDプロパティがカタログファイルを無視しています

schema_reference: Failed to read schema document 'xml.xsd', because 'http' access is not allowed due to restriction set by the accessExternalSchema property. 

この動作は、自分のリソースをローカルにすることを意図したものです。しかし、カタログの変更によってこのエラーが回避されるべきではありませんか?それとも、私の設定に何か問題がありますか?ポンポンファイルの

パーツ:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>jaxb2-maven-plugin</artifactId> 
    <version>1.6</version> 
    <executions> 
     <execution> 
      <id>xjc</id> 
      <goals> 
       <goal>xjc</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <catalog>${project.basedir}/catalog.xml</catalog> 
     <schemaDirectory>${project.basedir}/src/main/resources/</schemaDirectory> 
     <outputDirectory>${project.basedir}/src/main/java</outputDirectory> 
     <clearOutputDir>false</clearOutputDir> 
    </configuration> 
</plugin> 
<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>properties-maven-plugin</artifactId> 
    <version>1.0-alpha-2</version> 
    <executions> 
     <execution> 
      <id>set-additional-system-properties</id> 
      <goals> 
       <goal>set-system-properties</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <properties> 
      <property> 
       <name>javax.xml.accessExternalSchema</name> 
       <value>file</value> 
      </property> 
      <property> 
       <name>javax.xml.accessExternalDTD</name> 
       <value>file</value> 
      </property> 
     </properties> 
     <outputFile/> 
    </configuration> 
</plugin> 

カタログファイル:

<!DOCTYPE catalog 
    PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"> 
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> 
    <rewriteSystem systemIdStartString="http://www.w3.org/XML/1998/namespace" rewritePrefix="www.w3.org"/> 
</catalog> 

答えて

1

私はmyeカタログが間違っていることがわかりました。

<property> 
    <name>javax.xml.accessExternalSchema</name> 
    <value>file</value> 
</property> 
<property> 
    <name>javax.xml.accessExternalDTD</name> 
    <value>file</value> 
</property> 

の使用を滴下し、私はこれに、ファイル、フォームのcatalog.xmlをcatalog.catために私カタログを変更:上記

REWRITE_SYSTEM "http://www.w3.org" "www.w3.org" 
REWRITE_SYSTEM "http://docs.oasis-open.org" "docs.oasis-open.org" 
REWRITE_URI "http://docs.oasis-open.org/wsn" "docs.oasis-open.org/wsn" 
REWRITE_URI "http://docs.oasis-open.org/wsrf" "docs.oasis-open.org/wsrf" 

プロパティは、このカタログでは動作しないが、私作業中のカタログでは、カタログ内のパスが正しい限り、外部スキーマはフェッチされません。プロパティを廃止する

+0

システムが外部スキーマにアクセスしようとしなかったときに、mavenがエラーを投げたので、スタックトレースを読み込むだけでは難解でした – Bjerke

2

iは、同様のエラーを持っていたし、私は私が見つかりましたが、私の作品だけだった、あまりにも多くのソリューションを試してみてください:

プラグインタグであなたのポンポンにこれを追加する

  <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <configuration> 
        <systemPropertyVariables> 
         <javax.xml.accessExternalSchema>all</javax.xml.accessExternalSchema> 
        </systemPropertyVariables> 
       </configuration> 
      </plugin> 

私の悪い英語のため申し訳ありませんが、これはあなたのために動作することを願って

+0

私が探していたものではなく、私の問題は、究極のものではなくローカルファイルを強制的に強制したいということです。あなたの提案はエラーメッセージを解決します! :) – Bjerke

関連する問題