Genexus16转换Evolution X v1 KB后重组失败问题求助
Genexus 16 跨版本KB迁移构建报错解决方案
问题背景
该KB由Evolution X版本1转换而来,运行环境为Genexus 16、Java、SQL Server,构建XPZ导入文件时报错,添加-nogui -ignoreresume构建参数后问题仍存在。
分阶段解决方案
阶段1:编译期cannot find symbol错误
该错误是旧版本KB核心类库与Genexus 16 API签名不匹配导致,直接替换Genexus 16官方对应版本的gxclassR.zip即可解决编译问题,你已完成该步操作。
阶段2:运行期Xerces依赖冲突错误
目前的java.lang.NoSuchMethodError报错是项目类路径下存在多个版本的Xerces XML解析包,版本不兼容导致,按以下步骤处理:
- 进入项目
JavaModel\web\WEB-INF\lib目录,删除所有自定义引入的xercesImpl.jar、xml-apis.jar包 - 从Genexus 16安装目录的
\gx16\Java\Runtime\lib路径下,复制官方自带的xercesImpl.jar和xml-apis.jar到上述项目lib目录 - 清理缓存后重新构建:
- 完全关闭Genexus IDE
- 删除项目根目录下
models文件夹内的所有临时编译缓存 - 删除系统路径
C:\Users\<当前系统用户名>\AppData\Local\GeneXus\16.0下的所有缓存文件 - 重启IDE执行
Build -> Rebuild All
- 如果仍报冲突错误,在
Build Process -> Advanced的Java虚拟机启动参数中追加以下配置,强制使用JDK自带的XML解析器:-Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
操作完成后即可正常完成重组流程,生成可用的XPZ导入文件。
内容的提问来源于stack exchange,提问作者Derimar Gray
相关产品推荐
相关产品推荐

