0

全部,

在我们的“更高”环境中,我们不允许访问世界以获取资源。我们的 JBoss 应用程序使用 JPA,我们的日志显示我们正在尝试从外部世界获取 persistence_2_0.xsd,但由于防火墙限制而失败。

如何教 jboss 拦截对模式文件的请求,并提供本地管理的文件?

虽然我在持久性模式的上下文中询问,但我们使用的其他服务也存在类似问题。在其中一些情况下,模式包括其他外部资源,我们希望能够拦截后续调用以提供本地管理的资源。

例如,如果我们的 XML 文件之一具有:

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 中的 XSD 来完成的。

于 2013-03-21T18:56:08.550 回答