在BIM创建一个业务单元后发布,出现以下编译错误:
deployBIMProject 执行错误,错误堆栈:
D:\kingdeeBos703\bos\BOSModular\bim\eclipse\plugins\com.kingdee.bos.bim_6.1.0\configs\ant\deploy.xml:59: Compile failed; see the compiler error output for details.
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:999)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:820)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:623)
at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:456)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:378)
at com.kingdee.bos.bim.scriptjob.BaseAntScriptJob.runScript(BaseAntScriptJob.java:251)
at com.kingdee.bos.bim.scriptjob.BaseAntScriptJob.run(BaseAntScriptJob.java:175)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
详细过程请参考文件:D:\tasmc\tasmc/ant_log.txt
查看ant_log.txt文件,出错内容如下:
[i][javac] 1。D:\kingdee\ws4ay\ayeas\srctemp\com\kingdee\eas\custom\demo\app\AbstractBillControllerBean.java 中存在错误 (位于第 54 行)
[javac] if(!svcCtx.invokeBreak()) {
[javac] ^^^^^^^^^^^
[javac] 没有为类型 ServiceContext 定义方法 invokeBreak()[/i]
[b]问题分析:[/b]
BIM发布生成的java代码是由BIM工具决定的,而生成的代码含有超类不存在的方法,由此推断,BOS IDE的版本可能比BOS解决方案(solution,即eclipse的工程)的版本新。确认出错的环境为,BOS IDE是使用EAS703安装包里的,而BOS解决方案是从EAS701服务器导出的。与推断符合。
[b]解决方案:[/b]
安装与BOS解决方案版本一致的BOS IDE,重新发布,问题解决。
附:
BOS的版本确实容易混乱,可以在安装完BOS后,通过手工修改版本号避免混淆,修改版本号方法如下:
1、关闭BOS;
2、用文本编辑器打开文件:BOSModular\bim\eclipse\plugins\com.kingdee.bos.bimintro_6.1.0\plugin.properties;
3、修改plugin.properties的Version;
4、执行脚本:BOSModular\clear_bosmodular_env.bat
5、启动BOS,点击菜单“帮助”--“关于BOS集成开发环境”,即可看到修改后的BOS版本号。