安装Oracle SOA Suite 12.2.1.4.0遇ClassNotFoundException错误求助
安装Oracle SOA Suite 12.2.1.4.0时遭遇ClassNotFoundException问题
尝试在工作笔记本上安装Oracle SOA Suite 12.2.1.4.0,通过脚本设置了JAVA_HOME(指定jdk1.8.0_211)等环境变量,运行安装包时出现java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory错误。试过多个JDK版本(1.7和1.8),清理电脑上所有Java相关内容并多次重装,问题依旧。
安装脚本
set DEVROOT=C:\WORKINGDIR set M2_HOME=%DEVROOT%\Apps\apache-maven-3.2.5 set JAVA_HOME=%DEVROOT%\Apps\jdk1.8.0_211 set PATH=%JAVA_HOME%\bin;%M2_HOME%\bin;%PATH% java -verbose -jar fmw_12.2.1.4.0_soa_quickstart.jar
报错日志
[Opened C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] ... ... [Loaded com.oracle.xmlns.oui.options.GroupType from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded com.oracle.xmlns.oui.options.OptionType from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded com.oracle.xmlns.oui.options.OperationType from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded com.oracle.xmlns.oui.options.ReferenceType from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded com.oracle.xmlns.oui.options.OperationOptionType from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded com.oracle.xmlns.oui.options.OptionsInfoType from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded com.oracle.xmlns.oui.options.OptionsStructureType from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded com.oracle.xmlns.oui.options.OptionsType from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded javax.xml.bind.JAXBContext from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded javax.xml.bind.ContextFinder from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded javax.xml.bind.GetPropertyAction from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded java.util.logging.LogRecord from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded java.lang.Throwable$PrintStreamOrWriter from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded java.lang.Throwable$WrappedPrintStream from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded java.util.IdentityHashMap$KeySet from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] com.oracle.cie.nextgen.common.inputs.impl.InputHandlerException: com.oracle.cie.common.dao.DataHandlerException: javax.xml.bind.JAXBException - with linked exception: [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory] at com.oracle.cie.nextgen.common.inputs.parser.OptionsParser.getOptionsInfoDao(OptionsParser.java:550) at com.oracle.cie.nextgen.common.inputs.parser.OptionsParser.parseOptionsDao(OptionsParser.java:219) at com.oracle.cie.nextgen.common.inputs.parser.OptionsParser.<init>(OptionsParser.java:142) at com.oracle.cie.nextgen.common.inputs.parser.OptionsParser.getInstance(OptionsParser.java:129) at com.oracle.cie.nextgen.common.inputs.impl.OUIOptions.<init>(OUIOptions.java:59) at com.oracle.cie.nextgen.common.inputs.impl.InputsImpl.<init>(InputsImpl.java:53) at com.oracle.cie.nextgen.common.inputs.impl.InputsImpl.getInstance(InputsImpl.java:60) at com.oracle.cie.nextgen.common.inputs.helpers.InputHandler.getInputs(InputHandler.java:41) at com.oracle.cie.nextgen.launcher.Launcher.processCommandLineArgs(Launcher.java:3261) at com.oracle.cie.nextgen.launcher.Launcher.execute(Launcher.java:4035) at com.oracle.cie.nextgen.launcher.Launcher.main(Launcher.java:3969) Caused by: com.oracle.cie.common.dao.DataHandlerException: javax.xml.bind.JAXBException - with linked exception: [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory] at com.oracle.cie.common.dao.jaxb.JaxbDataHandlerSpiImpl.getUnmarshaller(JaxbDataHandlerSpiImpl.java:359) at com.oracle.cie.common.dao.jaxb.JaxbDataHandlerSpiImpl.create(JaxbDataHandlerSpiImpl.java:154) at com.oracle.cie.gdr.helpers.DaoHelper.parse(DaoHelper.java:224) at com.oracle.cie.gdr.helpers.DaoHelper.getRootWrapper(DaoHelper.java:693) at com.oracle.cie.nextgen.common.inputs.parser.OptionsParser.getOptionsInfoDao(OptionsParser.java:546) ... 10 more Caused by: javax.xml.bind.JAXBException - with linked exception: [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory] at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:226) at javax.xml.bind.ContextFinder.find(ContextFinder.java:390) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:641) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:584) at com.oracle.cie.common.dao.jaxb.JaxbDataHandlerSpiImpl.getUnmarshaller(JaxbDataHandlerSpiImpl.java:340) ... 14 more Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at javax.xml.bind.ContextFinder.safeLoadClass(ContextFinder.java:579) at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:224) ... 18 more [Loaded com.oracle.cie.nextgen.common.inputs.parser.CommandLineParser from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded com.oracle.cie.nextgen.common.utils.Util from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded java.io.FileFilter from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded java.util.LinkedHashSet from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded java.lang.Throwable$WrappedPrintWriter from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded com.oracle.cie.nextgen.launcher.NLS from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded com.oracle.cie.common.util.ResourceBundleManager from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded com.oracle.cie.common.util.ResourceBundleManager$ResourceNamespace from INSTALLER_PATH/Software/jdev+soa12/fmw_12.2.1.4.0_soa_quickstart.jar] [Loaded sun.util.ResourceBundleEnumeration from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] com.oracle.cie.nextgen.common.inputs.impl.InputHandlerException: com.oracle.cie.nextgen.common.inputs.impl.InputHandlerException: com.oracle.cie.common.dao.DataHandlerException: javax.xml.bind.JAXBException - with linked exception: [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory] [Loaded java.text.MessageFormat from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded java.util.Formatter$FormatString from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded java.util.Formatter$FixedString from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] Press Enter to exit [Loaded java.util.IdentityHashMap$IdentityHashMapIterator from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar] [Loaded java.util.IdentityHashMap$KeyIterator from C:\WORKINGDIR\Apps\jdk1.8.0_211\jre\lib\rt.jar]
解决办法
- 手动指定JAXB实现类:在启动命令中添加系统属性,强制指定JAXB的ContextFactory,修改后的命令如下:
java -verbose -Djavax.xml.bind.JAXBContextFactory=com.sun.xml.bind.v2.ContextFactory -jar fmw_12.2.1.4.0_soa_quickstart.jar - 校验安装包完整性:重新下载Oracle SOA Suite 12.2.1.4.0安装包,核对官方提供的文件哈希值,确保安装包未损坏。部分情况下,安装包缺失JAXB依赖会触发该错误。
- 使用认证JDK版本:Oracle SOA Suite 12.2.1.4.0官方推荐JDK 1.8.0_191及以上,但需避开JDK 1.8.0_202及之后的部分版本(这些版本移除了JAXB默认实现),建议使用JDK 1.8.0_191或确认当前1.8.0_211与安装包的适配性。
- 清理环境变量残留:打开系统环境变量设置,检查
JAVA_HOME、PATH中是否存在其他JDK路径并移除;在命令提示符执行java -version和javac -version,确认当前使用的是指定的JDK 1.8.0_211。 - 解压安装包后执行:将
fmw_12.2.1.4.0_soa_quickstart.jar解压到本地目录,从解压后的目录中找到启动入口执行,避免Jar包加载时的路径问题。
内容的提问来源于stack exchange,提问作者gosphalt
相关产品推荐
相关产品推荐

