全て、
私たちの「より高い」環境では、世界にアクセスしてリソースを取得することは許可されていません。私たちの JBoss アプリケーションは JPA を使用しており、私たちのログは、外部から persistence_2_0.xsd を取得しようとしており、ファイアウォールの制限のために失敗していることを示しています。
jboss にスキーマ ファイルのリクエストを傍受し、代わりにローカルで管理されたファイルを提供するように教えるにはどうすればよいですか?
永続化スキーマのコンテキストで質問していますが、同様の問題を抱えているサービスが他にもあります。これらのケースのいくつかでは、スキーマに他の外部リソースが含まれており、代わりにローカルで管理されたリソースを提供するために後続の呼び出しをインターセプトできるようにしたいと考えています。
たとえば、XML ファイルの 1 つに次のものが含まれているとします。
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
どうすればインターセプトできますか
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd
提供する
/opt/local/schemas/persistence_2_0.xsd
外の世界に行かなくても?
ログのエラーは次のとおりです。
10.xx.xx.xxx, remoteHostname=10.xx.xx.xxx, remotePort=0, scheme=http, requestServerName=null, requestServerPort=0, headerFields=null, audit=null]] 2013-03-20 18:43:22,679 WARN [org.hibernate.ejb.packaging.PersistenceXmlLoader] [http-name%2F10.yyy.yy.yy-8080-1] [request_httpUniqueId=(null)] Warning parsing XML: XML InputStream(4) schema_reference.4: Failed to read schema document 'http://java.sun.com/xml/ns/persistence/persistence_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>.