XJC编译器引发异常

问题描述

这是我关于stackoverflow的第一篇文章。因此,如果我做错了某些事情或违反了一些我不知道的规则,请耐心等待我。

我尝试使用xjc编译器将xsd文件(实际上是两个)编译为一组Java类。 对于此任务,我有一个ANT文件,该文件通常可以正常工作。现在,我想使用Xequals和XhashCode插件(根据jaxb2-basics文档)。但是每次我得到一个例外: [xjc] org.xml.sax.SAXNotSupportedException: FEATURE_SECURE_PROCESSING: Feature can not be set to "false" if security manager is present.

下面是完整的堆栈跟踪。

据我了解(希望正确),正在运行的JVM已设置了安全管理器,并且在xjc进程中将XML选项FEATURE_SECURE_PROCESSING设置为false。

但是我没有找到解决方法。我不知道如何影响此标志或如何禁用安全管理器(最后一个并不是我想要执行的操作)。

我的ant文件如下所示

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project name="RunningXjc" default="generate-sources" basedir=".">
    <description>Runs Xjc Binding Compiler</description>
    <target name="generate-sources">
        <!-- Define the xjc task -->
        <taskdef name="xjc" classname="org.jvnet.jaxb2_commons.xjc.XJC2Task">
            <!-- XJC2 Task classpath -->
            <classpath>
                    <fileset dir="${basedir}/../lib">
                    <include name="activation-*.jar"/>
                    <include name="jaxb-api-*.jar"/>
                    <include name="jaxb-impl-*.jar"/>
                    <include name="jsr173_api-*.jar"/>
                    <include name="stax-api-*.jar"/>
                    <include name="jaxb-xjc-*.jar"/>
                    <include name="jaxb2-basics-ant-*.jar"/>
                </fileset>
            </classpath>
        </taskdef>
        <mkdir dir="${basedir}/de.tesat.ppdfw.api.postprocessing.server.gen2"/>
        <!-- Generate the code -->
        <xjc destdir="${basedir}/de.tesat.ppdfw.api.postprocessing.server.gen2" extension="true">
            <arg line="
                -Xequals
                -XhashCode
                -XtoString
                -Xcopyable"/>
            <schema dir="${basedir}">
                <include name="**/*.xsd"/>
            </schema>
            <!-- Plugins -->
            <classpath>
                <fileset dir="${basedir}/../lib">
                    <!-- JAXB2 Basics library -->
                    <include name="jaxb2-basics-*.jar"/>
                    <!-- JAXB2 Basics library dependencies -->
                    <include name="jaxb2-basics-runtime-*.jar"/>
                    <include name="jaxb2-basics-tools-*.jar"/>
                    <include name="commons-beanutils-*.jar"/>
                    <include name="commons-lang3-*.jar"/>
                    <include name="commons-logging-*.jar"/>
                </fileset>
            </classpath>
        </xjc>
    </target>
</project>

过去有人遇到过同样的困难吗? 我正在运行jdk 8。 我希望我提供了所有必要的信息来帮助我解决这个问题。

非常感谢您的提前帮助!

例外:

  [xjc] build id of XJC is 2.3.0
      [xjc] Checking timestamp of C:\Users\hei2bk\pp-dfw-master2\git\pp-dfw\de.tesat.ppdfw.api.postprocessing.server\gen\bigDecimal_binding.xsd
      [xjc] Checking timestamp of C:\Users\hei2bk\pp-dfw-master2\git\pp-dfw\de.tesat.ppdfw.api.postprocessing.server\gen\postprocessingserver.xsd
      [xjc] the last modified time of the inputs is  1604333677874
      [xjc] the last modified time of the outputs is -9223372036854775808
      [xjc] SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
      [xjc] SLF4J: Defaulting to no-operation (NOP) logger implementation
      [xjc] SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
      [xjc] Consider using <depends>/<produces> so that XJC won't do unnecessary compilation
      [xjc] Compiling file:/C:/Users/hei2bk/pp-dfw-master2/git/pp-dfw/de.tesat.ppdfw.api.postprocessing.server/gen/bigDecimal_binding.xsd and others
      [xjc] Nov 02,2020 5:57:49 PM com.sun.xml.bind.v2.util.XmlFactory createSchemaFactory
      [xjc] SCHWERWIEGEND: null
      [xjc] org.xml.sax.SAXNotSupportedException: FEATURE_SECURE_PROCESSING: Feature kann nicht auf "false" gesetzt werden,wenn Security Manager vorhanden ist.
      [xjc]     at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.setFeature(XMLSchemaFactory.java:369)
      [xjc]     at com.sun.xml.bind.v2.util.XmlFactory.createSchemaFactory(XmlFactory.java:110)
      [xjc]     at com.sun.tools.xjc.reader.xmlschema.parser.SchemaConstraintChecker.check(SchemaConstraintChecker.java:86)
      [xjc]     at com.sun.tools.xjc.ModelLoader.loadXMLSchema(ModelLoader.java:342)
      [xjc]     at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:162)
      [xjc]     at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:117)
      [xjc]     at com.sun.tools.xjc.XJCBase._doXJC(XJCBase.java:837)
      [xjc]     at com.sun.tools.xjc.XJCBase.doXJC(XJCBase.java:787)
      [xjc]     at com.sun.tools.xjc.XJCBase.execute(XJCBase.java:682)
      [xjc]     at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:55)
      [xjc]     at org.jvnet.jaxb2_commons.xjc.XJC2Task.execute(XJC2Task.java:35)
      [xjc]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
      [xjc]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [xjc]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      [xjc]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      [xjc]     at java.lang.reflect.Method.invoke(Method.java:498)
      [xjc]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
      [xjc]     at org.apache.tools.ant.Task.perform(Task.java:350)
      [xjc]     at org.apache.tools.ant.Target.execute(Target.java:449)
      [xjc]     at org.apache.tools.ant.Target.performTasks(Target.java:470)
      [xjc]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1391)
      [xjc]     at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
      [xjc]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
      [xjc]     at org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:39)
      [xjc]     at org.apache.tools.ant.Project.executeTargets(Project.java:1254)
      [xjc]     at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:461)
      [xjc]     at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:143)

BUILD FAILED
C:\Users\hei2bk\pp-dfw-master2\git\pp-dfw\de.tesat.ppdfw.api.postprocessing.server\gen\buildWithEquals2.xml:22: java.lang.IllegalStateException: org.xml.sax.SAXNotSupportedException: FEATURE_SECURE_PROCESSING: Feature kann nicht auf "false" gesetzt werden,wenn Security Manager vorhanden ist.
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:109)
    at org.apache.tools.ant.Task.perform(Task.java:350)
    at org.apache.tools.ant.Target.execute(Target.java:449)
    at org.apache.tools.ant.Target.performTasks(Target.java:470)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1391)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:39)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1254)
    at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:461)
    at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:143)
Caused by: java.lang.IllegalStateException: org.xml.sax.SAXNotSupportedException: FEATURE_SECURE_PROCESSING: Feature kann nicht auf "false" gesetzt werden,wenn Security Manager vorhanden ist.
    at com.sun.xml.bind.v2.util.XmlFactory.createSchemaFactory(XmlFactory.java:117)
    at com.sun.tools.xjc.reader.xmlschema.parser.SchemaConstraintChecker.check(SchemaConstraintChecker.java:86)
    at com.sun.tools.xjc.ModelLoader.loadXMLSchema(ModelLoader.java:342)
    at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:162)
    at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:117)
    at com.sun.tools.xjc.XJCBase._doXJC(XJCBase.java:837)
    at com.sun.tools.xjc.XJCBase.doXJC(XJCBase.java:787)
    at com.sun.tools.xjc.XJCBase.execute(XJCBase.java:682)
    at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:55)
    at org.jvnet.jaxb2_commons.xjc.XJC2Task.execute(XJC2Task.java:35)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
    ... 10 more
Caused by: org.xml.sax.SAXNotSupportedException: FEATURE_SECURE_PROCESSING: Feature kann nicht auf "false" gesetzt werden,wenn Security Manager vorhanden ist.
    at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.setFeature(XMLSchemaFactory.java:369)
    at com.sun.xml.bind.v2.util.XmlFactory.createSchemaFactory(XmlFactory.java:110)
    ... 25 more

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)