0

全て、

私たちの「より高い」環境では、世界にアクセスしてリソースを取得することは許可されていません。私たちの 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>.
4

1 に答える 1

0

JPA実装とJavaEEコンテナは、それらのXSDの独自のローカルバージョンを完全に持つことができ、それらに対して解決できることを期待しています(したがって、リモートアクセスをすべて遮断します)。たとえば、DataNucleus JPAは、そのjarの1つにあるXSDを使用してそれを実行します。

于 2013-03-21T18:56:08.550 に答える