You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 IS Server启动失败:NumberFormatException引发容器启动异常

WSO2 Identity Server启动失败:NumberFormatException("300ms") 解决步骤

错误日志

TID: [-1234] [] [2022-12-05 21:31:08,401] [] ERROR {org.apache.catalina.core.ContainerBase} - A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [TenantContextRewriteValve[StandardEngine[Catalina].StandardHost[localhost]]]
    at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:926)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.wso2.carbon.tomcat.ext.service.ExtendedStandardService.startInternal(ExtendedStandardService.java:52)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.wso2.carbon.tomcat.internal.CarbonTomcat.start(CarbonTomcat.java:113)
    at org.wso2.carbon.tomcat.internal.ServerManager$1.run(ServerManager.java:167)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [TenantContextRewriteValve[StandardEngine[Catalina].StandardHost[localhost]]]
    at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
    at org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:176)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:943)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
    at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)
    ... 9 more
Caused by: java.lang.NumberFormatException: For input string: "300ms"
    at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.base/java.lang.Integer.parseInt(Integer.java:652)
    at java.base/java.lang.Integer.parseInt(Integer.java:770)
    at org.wso2.carbon.identity.core.util.IdentityConfigParser.buildCacheConfig(IdentityConfigParser.java:278)
    at org.wso2.carbon.identity.core.util.IdentityConfigParser.buildConfiguration(IdentityConfigParser.java:177)
    at org.wso2.carbon.identity.core.util.IdentityConfigParser.<init>(IdentityConfigParser.java:74)
    at org.wso2.carbon.identity.core.util.IdentityConfigParser.getInstance(IdentityConfigParser.java:81)
    at org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.getContextsToRewrite(TenantContextRewriteValve.java:134)
    at org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.startInternal(TenantContextRewriteValve.java:61)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    ... 20 more

问题分析

日志明确显示,IdentityConfigParser在解析缓存配置时,试图将带时间单位的字符串"300ms"转换为整数,触发了NumberFormatException。该版本的WSO2 IS缓存配置仅接受纯数字(代表毫秒数),不支持带单位的格式。

解决步骤

  • 定位配置文件:打开WSO2 IS安装目录下的repository/conf/identity/identity.xml文件。
  • 查找错误配置:搜索包含"300ms"的配置项,这类配置通常属于缓存超时(如CacheTimeout)相关字段。
  • 修正格式:将带单位的"300ms"改为纯数字300(若原本意图就是300毫秒),确保所有缓存相关配置值均为无单位的整数。
  • 验证其他配置:遍历文件中所有缓存配置项,确认没有其他带时间单位的字符串格式值。
  • 重启服务:保存修改后的配置文件,重新启动WSO2 Identity Server,检查启动是否正常。

内容的提问来源于stack exchange,提问作者Nipuna Upeksha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:25:14