Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EclipseLink 2:ANT任务错误_Java_Ant_Eclipselink_Glassfish 3_Jdk1.6 - Fatal编程技术网

Java EclipseLink 2:ANT任务错误

Java EclipseLink 2:ANT任务错误,java,ant,eclipselink,glassfish-3,jdk1.6,Java,Ant,Eclipselink,Glassfish 3,Jdk1.6,我得到了一个蚂蚁任务: <javac verbose="on" srcdir="${src.dir}" destdir="${build.dir}/${context.path}/classes" debug="${compile.debug}" debuglevel="${javac.debuglevel}" optimize="${compile.optimize}" deprecation="${javac.deprecation}"

我得到了一个蚂蚁任务:

<javac verbose="on"
    srcdir="${src.dir}"
    destdir="${build.dir}/${context.path}/classes"
    debug="${compile.debug}"
    debuglevel="${javac.debuglevel}"
    optimize="${compile.optimize}"
    deprecation="${javac.deprecation}"
    failonerror="true">
    <compilerarg value="-Aeclipselink.persistencexml=${web.dir}/META-INF" compiler="javac1.6" />
    <compilerarg line=" -processor org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor" />
    <compilerarg line=" -proc:only" compiler="javac1.6" />
    <classpath refid="compile.classpath"/>
</javac>

当我运行上述任务时,出现以下错误:

[javac] error: java.lang.IllegalArgumentException
[javac] An annotation processor threw an uncaught exception.
[javac] Consult the following stack trace for details.
[javac] java.lang.RuntimeException: java.lang.IllegalArgumentException
[javac]     at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:407)
[javac]     at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:625)
[javac]     at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:554)
[javac]     at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:699)
[javac]     at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:981)
[javac]     at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
[javac]     at com.sun.tools.javac.main.Main.compile(Main.java:353)
[javac]     at com.sun.tools.javac.main.Main.compile(Main.java:279)
[javac]     at com.sun.tools.javac.main.Main.compile(Main.java:270)
[javac]     at com.sun.tools.javac.Main.compile(Main.java:69)
[javac]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javac]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[javac]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[javac]     at java.lang.reflect.Method.invoke(Method.java:597)
[javac]     at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:56)
[javac]     at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1065)
[javac]     at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:882)
[javac]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[javac]     at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
[javac]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[javac]     at java.lang.reflect.Method.invoke(Method.java:597)
[javac]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[javac]     at org.apache.tools.ant.Task.perform(Task.java:348)
[javac]     at org.apache.tools.ant.Target.execute(Target.java:357)
[javac]     at org.apache.tools.ant.Target.performTasks(Target.java:385)
[javac]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
[javac]     at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
[javac]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[javac]     at org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
[javac]     at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
[javac]     at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:423)
[javac]     at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:137)
[javac] Caused by: java.lang.IllegalArgumentException
[javac]     at java.net.URI.create(URI.java:842)
[javac]     at com.sun.tools.javac.util.DefaultFileManager.getFileForOutput(DefaultFileManager.java:1029)
[javac]     at com.sun.tools.javac.processing.JavacFiler.getResource(JavacFiler.java:434)
[javac]     at org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnitReader.getFileObject(PersistenceUnitReader.java:93)
[javac]     at org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnitReader.getInputStream(PersistenceUnitReader.java:104)
[javac]     at org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnitReader.initPersistenceUnits(PersistenceUnitReader.java:169)
[javac]     at org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnitReader.<init>(PersistenceUnitReader.java:71)
[javac]     at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:376)
[javac]     ... 31 more
[javac] Caused by: java.net.URISyntaxException: Illegal character in opaque part at index 2: D:\Project\website/WebContent/META-INF
[javac]     at java.net.URI$Parser.fail(URI.java:2809)
[javac]     at java.net.URI$Parser.checkChars(URI.java:2982)
[javac]     at java.net.URI$Parser.parse(URI.java:3019)
[javac]     at java.net.URI.<init>(URI.java:578)
[javac]     at java.net.URI.create(URI.java:840)
[javac]     ... 38 more
[javac]错误:java.lang.IllegalArgumentException
[javac]注释处理器引发了未捕获的异常。
[javac]有关详细信息,请参阅以下堆栈跟踪。
[javac]java.lang.RuntimeException:java.lang.IllegalArgumentException
[javac]位于org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:407)
[javac]位于com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:625)
[javac]位于com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverandrunpcs(JavacProcessingEnvironment.java:554)
[javac]位于com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:699)
[javac]位于com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:981)
[javac]位于com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
[javac]位于com.sun.tools.javac.main.main.compile(main.java:353)
[javac]位于com.sun.tools.javac.main.main.compile(main.java:279)
[javac]位于com.sun.tools.javac.main.main.compile(main.java:270)
[javac]位于com.sun.tools.javac.Main.compile(Main.java:69)
[javac]位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
[javac]位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[javac]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[javac]位于java.lang.reflect.Method.invoke(Method.java:597)
[javac]位于org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:56)
[javac]位于org.apache.tools.ant.taskdefs.javac.compile(javac.java:1065)
[javac]位于org.apache.tools.ant.taskdefs.javac.execute(javac.java:882)
[javac]位于org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[javac]位于sun.reflect.GeneratedMethodAccessor1.invoke(未知源)
[javac]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[javac]位于java.lang.reflect.Method.invoke(Method.java:597)
[javac]位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[javac]位于org.apache.tools.ant.Task.perform(Task.java:348)
[javac]位于org.apache.tools.ant.Target.execute(Target.java:357)
[javac]位于org.apache.tools.ant.Target.performTasks(Target.java:385)
[javac]位于org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
[javac]位于org.apache.tools.ant.Project.executeTarget(Project.java:1306)
[javac]位于org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[javac]位于org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
[javac]位于org.apache.tools.ant.Project.executeTargets(Project.java:1189)
[javac]位于org.eclipse.ant.internal.launting.remote.InternalAntRunner.run(InternalAntRunner.java:423)
[javac]位于org.eclipse.ant.internal.launting.remote.InternalAntRunner.main(InternalAntRunner.java:137)
[javac]由以下原因引起:java.lang.IllegalArgumentException
[javac]位于java.net.URI.create(URI.java:842)
[javac]位于com.sun.tools.javac.util.DefaultFileManager.getFileForOutput(DefaultFileManager.java:1029)
[javac]位于com.sun.tools.javac.processing.JavacFiler.getResource(JavacFiler.java:434)
[javac]位于org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnitReader.getFileObject(PersistenceUnitReader.java:93)
[javac]位于org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnitReader.getInputStream(PersistenceUnitReader.java:104)
[javac]位于org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnitReader.initPersistenceUnits(PersistenceUnitReader.java:169)
[javac]位于org.eclipse.persistence.internal.jpa.modelgen.objects.PersistenceUnitReader.(PersistenceUnitReader.java:71)
[javac]位于org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:376)
[javac]。。。还有31个
[javac]原因:java.net.URISyntaxException:索引2处不透明部分中的非法字符:D:\Project\website/WebContent/META-INF
[javac]位于java.net.URI$Parser.fail(URI.java:2809)
[javac]位于java.net.URI$Parser.checkChars(URI.java:2982)
[javac]位于java.net.URI$Parser.parse(URI.java:3019)
[javac]位于java.net.URI。(URI.java:578)
[javac]位于java.net.URI.create(URI.java:840)
[javac]。。。38多
我已将错误追踪到此行
。解析器似乎不喜欢编译器的参数值
-Aeclipselink.persistencexml
。上述误差在JDK 1.6.0.24和JDK 1.6.0.25中都是可重复的。该错误是由org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process引起的

我正在使用EclipseLink版本2.2.0.v20110202-r8913,它与Glassfish 3.1捆绑在一起。我还尝试使用独立的EclipseLink库版本2.2.0.v20110202-r8913编译上述任务,但得到了相同的错误


上述错误是否有解决方法?

为了解决错误
java.net.URISyntaxException:索引2的不透明部分中的非法字符,我必须将META-INF移动到ANT的build.xml所在的同一目录中。这只是一个解决办法


我在上记录了一个错误。EclipseLink的人已经为EclipseLink 2.3.0版修复了这个错误。

在web.dir中尝试前斜杠?@Ethan:我已经尝试过了-同样的错误。:)请显示
${web.dir}
的定义@蒂姆·克鲁格:
${web.dir}
相当于我的项目的
WebContent
文件夹。所以
${web.dir}/META-INF
WebContent\META-INF
——我存储
persistence.xml
文件的地方。我认为错误在于抱怨