我需要在我的项目中使用一个web服务。我使用NetBeans,所以我正确地点击了我的项目,并尝试添加一个新的“”。上一次我检查,这是创建web服务客户端的方法。但结果却出现了一个AssertionError,它说:
jar:file:/path/to/glassfish/modules/jaxb-osgi.jar!/com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xsd;:org.xml.sax.SAXParseException;systemId: java.lang.AssertionError lineNumber: 52;columnNumber: 88;schema_reference:未能读取模式文档“xjc.xsd”,因为由于accessExternalSchema属性设置的限制,不允许访问“文件”。
NetBeans的默认Java是JDK8 ( Oracle的官方版本),所以当我更改JDK8文件并将JDK7 (也是从JDK7)作为缺省版本时,一切都很好。所以我认为问题在于JDK8。下面是我的java -version输出:
java版本"1.8.0“ Java(TM) SE运行时环境(build 1.8.0-b132) Java HotSpot(TM) 64位服务器VM (build 25.0-b70,混合模式)
现在,我将JDK7作为我的默认。如果有办法使JDK8工作,请分享。
发布于 2014-04-11 12:36:27
我找到了解决办法。(基于图式)
在jaxp.properties下创建一个名为/path/to/jdk1.8.0/jre/lib的文件(如果它不存在的话),然后在其中写这一行:
javax.xml.accessExternalSchema = all就这样。享受JDK 8。
发布于 2015-03-17 11:20:01
不是一个实际的答案,而是更多的作为参考。
如果您正在使用jaxws Maven插件,并且收到相同的错误消息,请将上述属性添加到插件配置中:
...
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.3</version>
<configuration>
<!-- Needed with JAXP 1.5 -->
<vmArgs>
<vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
</vmArgs>
</configuration>
</plugin>发布于 2014-07-15 02:43:53
我在Eclipse中运行ant构建(4.4,露娜,在Windows7 x64上)。与其修改已安装的JRE库或任何ant脚本(我在构建中包含了多个项目),我更喜欢更改Eclipse Settings“外部工具配置”,并将以下内容添加到Ant构建配置的VM参数中:
-Djavax.xml.accessExternalSchema=allhttps://stackoverflow.com/questions/23011547
复制相似问题