WSO2IS 5.3.0 - 升级 tomcat jar

WSO2IS 5.3.0 - upgrading tomcat jar

我目前正尝试在 运行ning 部署 WSO2IS 5.3.0 时使用机密管理器。打开配置后,启动 WSO2

时出现以下错误
TID: [-1234] [] [2021-03-01 09:44:24,700] FATAL {org.wso2.carbon.tomcat.internal.TomcatBundleActivator} -  Error while starting server NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist.
org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist.
        at org.apache.xerces.dom.AttributeMap.internalRemoveNamedItem(Unknown Source)
        at org.apache.xerces.dom.AttributeMap.removeNamedItem(Unknown Source)
        at org.wso2.carbon.tomcat.internal.ServerManager.init(ServerManager.java:106)
        at org.wso2.carbon.tomcat.internal.TomcatBundleActivator.start(TomcatBundleActivator.java:45)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.run(BundleContextImpl.java:711)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)
        at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)

我相信这是由这个提交 https://github.com/wso2/carbon-kernel/commit/213bacaa7ecdd5a16ce1b73f8333c35ef136ce65 修复的(主要是最后一部分),所以我正在尝试替换我的 org.wso2.carbon.tomcat jar 。但是,这样做时,我 运行 在启动 WSO2

时出现以下错误
Caused by: javax.naming.NoInitialContextException: Failed to create InitialContext using factory specified in hash table. [Root exception is java.lang.ClassNotFoundException: class org.wso2.carbon.tomcat.jndi.CarbonJavaURLContextFactory not found]
        at org.wso2.carbon.context.internal.CarbonContextDataHolder$CarbonInitialJNDIContextFactoryBuilder.createInitialContextFactory(CarbonContextDataHolder.java:491)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:681)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
        at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:341)
        at javax.naming.InitialContext.createSubcontext(InitialContext.java:489)
        at org.wso2.carbon.ndatasource.core.DataSourceRepository.checkAndCreateJNDISubContexts(DataSourceRepository.java:230)
        ... 45 more
Caused by: java.lang.ClassNotFoundException: class org.wso2.carbon.tomcat.jndi.CarbonJavaURLContextFactory not found
        at org.wso2.carbon.context.internal.CarbonContextDataHolder.classForName(CarbonContextDataHolder.java:1208)
        at org.wso2.carbon.context.internal.CarbonContextDataHolder.access0(CarbonContextDataHolder.java:94)
        at org.wso2.carbon.context.internal.CarbonContextDataHolder$CarbonInitialJNDIContextFactoryBuilder.createInitialContextFactory(CarbonContextDataHolder.java:456)

如果能帮助解决这个问题,我们将不胜感激

我还需要将 tomcat-juli jar 的更新版本放入我的 bin 文件夹中(在这种特殊情况下,从 7.0.73 到 7.0.82)。