2010-12-21 54 views
1

我有一個大型應用程序,其中的一部分依賴於一組3個Web服務。我目前正在編寫Ant構建腳本來構建應用程序並將其打包到EAR文件中。在爲此應用程序構建Web子項目時,我使用Ant中的<jwsc>任務編譯Web服務。這會導致一個IllegalAccessException,如在下面的堆棧跟蹤概述:Ant jwsc中的java.lang.IllegalAccessException web服務構建

[jwsc] warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 
[jwsc] JWS: processing module weboutput 
[jwsc] Parsing source files 
[jwsc] Parsing source files 
[jwsc] 3 JWS files being processed for module weboutput 
[jwsc] JWS: C:\dev\ir\irWeb\src\webservices\DailyRun.java Validated. 
[jwsc] JWS: C:\dev\ir\irWeb\src\webservices\PendingRegistrationsSweep.java Validated. 
[jwsc] JWS: C:\dev\ir\irWeb\src\webservices\RegistrationsGoLive.java Validated. 
[jwsc] Compiling 6 source files to C:\DOCUME~1\KEVIN~1.BRE\LOCALS~1\Temp\_5l950r 
[jwsc] An exception has occurred in the compiler (1.6.0_23). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you. 
[jwsc] java.lang.IllegalAccessError: tried to access class com.sun.tools.javac.jvm.ClassReader$AnnotationDefaultCompleter from class com.sun.tools.javac.jvm.ClassReader 
[jwsc]  at com.sun.tools.javac.jvm.ClassReader.attachAnnotationDefault(ClassReader.java:1128) 
[jwsc]  at com.sun.tools.javac.jvm.ClassReader.readMemberAttr(ClassReader.java:906) 
[jwsc]  at com.sun.tools.javac.jvm.ClassReader.readMemberAttrs(ClassReader.java:1027) 
[jwsc]  at com.sun.tools.javac.jvm.ClassReader.readMethod(ClassReader.java:1490) 
[jwsc]  at com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:1586) 
[jwsc]  at com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:1658) 
[jwsc]  at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1845) 
[jwsc]  at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1777) 
[jwsc]  at com.sun.tools.javac.code.Symbol.complete(Symbol.java:386) 
[jwsc]  at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:763) 
[jwsc]  at com.sun.tools.javac.jvm.ClassReader.loadClass(ClassReader.java:1951) 
[jwsc]  at com.sun.tools.javac.comp.Resolve.loadClass(Resolve.java:842) 
[jwsc]  at com.sun.tools.javac.comp.Resolve.findIdentInPackage(Resolve.java:1011) 
[jwsc]  at com.sun.tools.javac.comp.Attr.selectSym(Attr.java:1921) 
[jwsc]  at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:1835) 
[jwsc]  at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1522) 
[jwsc]  at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360) 
[jwsc]  at com.sun.tools.javac.comp.Attr.attribType(Attr.java:390) 
[jwsc]  at com.sun.tools.javac.comp.MemberEnter.attribImportType(MemberEnter.java:681) 
[jwsc]  at com.sun.tools.javac.comp.MemberEnter.visitImport(MemberEnter.java:545) 
[jwsc]  at com.sun.tools.javac.tree.JCTree$JCImport.accept(JCTree.java:495) 
[jwsc]  at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:387) 
[jwsc]  at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:399) 
[jwsc]  at com.sun.tools.javac.comp.MemberEnter.visitTopLevel(MemberEnter.java:512) 
[jwsc]  at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:446) 
[jwsc]  at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:387) 
[jwsc]  at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:819) 
[jwsc]  at com.sun.tools.javac.code.Symbol.complete(Symbol.java:386) 
[jwsc]  at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:763) 
[jwsc]  at com.sun.tools.javac.comp.Enter.complete(Enter.java:464) 
[jwsc]  at com.sun.tools.javac.comp.Enter.main(Enter.java:442) 
[jwsc]  at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:819) 
[jwsc]  at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727) 
[jwsc]  at com.sun.tools.javac.main.Main.compile(Main.java:353) 
[jwsc]  at com.sun.tools.javac.main.Main.compile(Main.java:279) 
[jwsc]  at com.sun.tools.javac.main.Main.compile(Main.java:270) 
[jwsc]  at com.sun.tools.javac.Main.compile(Main.java:69) 
[jwsc]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[jwsc]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:56) 
[jwsc]  at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1097) 
[jwsc]  at weblogic.wsee.tools.anttasks.DelegatingJavacTask$ExposingJavac.compile(DelegatingJavacTask.java:343) 
[jwsc]  at weblogic.wsee.tools.anttasks.DelegatingJavacTask.compile(DelegatingJavacTask.java:286) 
[jwsc]  at weblogic.wsee.tools.anttasks.JwscTask.javac(JwscTask.java:335) 
[jwsc]  at weblogic.wsee.tools.anttasks.JwsModule.compile(JwsModule.java:390) 
[jwsc]  at weblogic.wsee.tools.anttasks.JwsModule.build(JwsModule.java:262) 
[jwsc]  at weblogic.wsee.tools.anttasks.JwscTask.execute(JwscTask.java:227) 
[jwsc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[jwsc]  at org.apache.tools.ant.Target.execute(Target.java:390) 
[jwsc]  at org.apache.tools.ant.Target.performTasks(Target.java:411) 
[jwsc]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397) 
[jwsc]  at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) 
[jwsc]  at org.apache.tools.ant.Project.executeTargets(Project.java:1249) 
[jwsc]  at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442) 
[jwsc]  at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) 
[jwsc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[jwsc]  at org.apache.tools.ant.Target.execute(Target.java:390) 
[jwsc]  at org.apache.tools.ant.Target.performTasks(Target.java:411) 
[jwsc]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397) 
[jwsc]  at org.apache.tools.ant.Project.executeTarget(Project.java:1366) 
[jwsc]  at com.bea.workshop.cmdline.antlib.AntExTask.execute(AntExTask.java:406) 
[jwsc]  at com.bea.workshop.cmdline.antlib.AntCallExTask.execute(AntCallExTask.java:118) 
[jwsc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[jwsc]  at org.apache.tools.ant.Target.execute(Target.java:390) 
[jwsc]  at org.apache.tools.ant.Target.performTasks(Target.java:411) 
[jwsc]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397) 
[jwsc]  at org.apache.tools.ant.Project.executeTarget(Project.java:1366) 
[jwsc]  at com.bea.workshop.cmdline.antlib.AntExTask.execute(AntExTask.java:406) 
[jwsc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[jwsc]  at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 
[jwsc]  at net.sf.antcontrib.logic.IfTask.execute(IfTask.java:217) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:154) 
[jwsc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[jwsc]  at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 
[jwsc]  at net.sf.antcontrib.logic.IfTask.execute(IfTask.java:197) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:154) 
[jwsc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[jwsc]  at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 
[jwsc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[jwsc]  at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398) 
[jwsc]  at net.sf.antcontrib.logic.ForTask.doSequentialIteration(ForTask.java:259) 
[jwsc]  at net.sf.antcontrib.logic.ForTask.doToken(ForTask.java:268) 
[jwsc]  at net.sf.antcontrib.logic.ForTask.doTheTasks(ForTask.java:299) 
[jwsc]  at net.sf.antcontrib.logic.ForTask.execute(ForTask.java:244) 
[jwsc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[jwsc]  at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 
[jwsc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[jwsc]  at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398) 
[jwsc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[jwsc]  at org.apache.tools.ant.Target.execute(Target.java:390) 
[jwsc]  at org.apache.tools.ant.Target.performTasks(Target.java:411) 
[jwsc]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397) 
[jwsc]  at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) 
[jwsc]  at org.apache.tools.ant.Project.executeTargets(Project.java:1249) 
[jwsc]  at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442) 
[jwsc]  at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) 
[jwsc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[jwsc]  at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
[jwsc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[jwsc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[jwsc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[jwsc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[jwsc]  at org.apache.tools.ant.Target.execute(Target.java:390) 
[jwsc]  at org.apache.tools.ant.Target.performTasks(Target.java:411) 
[jwsc]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397) 
[jwsc]  at org.apache.tools.ant.Project.executeTarget(Project.java:1366) 
[jwsc]  at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
[jwsc]  at org.apache.tools.ant.Project.executeTargets(Project.java:1249) 
[jwsc]  at org.apache.tools.ant.Main.runBuild(Main.java:801) 
[jwsc]  at org.apache.tools.ant.Main.startAnt(Main.java:218) 
[jwsc]  at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) 
[jwsc]  at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) 

[AntUtil.deleteDir]刪除目錄C:\ DOCUME〜1 \ KEVIN〜1.BRE \ LOCALS〜1 \ Temp_5l950r

使用該<jwsc>任務的Ant目標是:

<target name="webservice.build" depends="init,generated.root.init"> 
    <path id="jwsc.srcpath"> 
    <path path="${java.sourcepath}" /> 
    <pathelement path="build/assembly/.src" /> 
    </path> 

    <taskdef name="jwsc" classname="weblogic.wsee.tools.anttasks.JwscTask" > 
    <classpath> 
     <path refid="weblogic.jar.classpath" /> 
    </classpath> 
    </taskdef> 

    <property name="jwsc.module.root" value="${project.dir}/build/weboutput"/> 

    <property name="jwsc.contextpath" value="irWeb"/> 

    <property name="jwsc.srcpath.prop" refid="jwsc.srcpath"/> 

    <path id="jwsc.classpath"> 
    <path refid="weblogic.jar.classpath" /> 
    <path refid="java.classpath" /> 
    <pathelement path="${java.outpath}" /> 
    </path> 

    <jwsc destdir="${project.dir}/build" classpathref="jwsc.classpath"> 
    <module name="weboutput" explode="true" contextPath="${jwsc.contextpath}" > 
     <jwsFileSet srcdir="${webservices.dir}" type="JAXRPC"> 
     <include name="**/*.java"/> 
     </jwsFileSet> 
     <descriptor file="${jwsc.module.root}/WEB-INF/web.xml" /> 
     <descriptor file="${jwsc.module.root}/WEB-INF/weblogic.xml" /> 
    </module> 
    </jwsc> 
</target> 

我不知道什麼可能會導致編譯器扔在構建時這個錯誤,並咕一天gle搜索已經發現了由不同觸發引起的這個錯誤的其他實例,並且這些propblems的解決方案對我不起作用。我還發現了一個關於Oracle論壇的單一報告,似乎是這個問題的副本,但沒有回覆。

該應用程序使用Weblogic Workshop 10編寫,運行在Weblogic Server 10.3上,並使用Beehive/NetUI。不知道這是否會有所作爲。構建腳本是由Weblogic Workshop自動生成的,通過對文件的其他方面進行一些調整和修復來解決其他兼容性問題。我使用Sun公司的Java 1.6.0_23和Ant 1.8.1

任何幫助或建議將不勝感激。

~~~編輯~~~ 更新:我發現一種解決方法通過與WebLogic來自Sun JDK改變JDK我的系統上的JRockit的JDK的船舶。我猜JRockit已經修改並優化了WebLogic相比於Sun JDK中的類的類。

((同樣,不知道是否把這個編輯或答案,所以選擇了編輯的位置。如果是爲了這個,我道歉,錯了地方。))

回答

1

錯誤您的經歷是因爲你的應用程序(真正的ant任務)試圖訪問一個有訪問限制的類。這就是爲什麼它會用JRockit而不是Sun爲你工作。

其中一個支持庫可能有錯誤。您應該按照說明進行操作,並在適當的地方提交錯誤消息。

2

在jwsc任務中使用fork =「true」。它解決了這個問題,而無需切換到JRockit。