![](/img/trans.png)
[英]React Native : Error: [messaging/unknown] java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: FIS_AUTH_ERROR
[英]WSO2 IS Server Start Error - A child container failed during start java.util.concurrent.ExecutionException due to NumberFormatException
当我尝试启动 WSO2 IS 时,我可以看到以下错误。
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
错误日志表明传递了一个字符串300ms
而不是一个数字。 我可以遵循哪些步骤来解决这个问题?
当您设置的配置之一通过300ms
而不是300
时,会发生此错误。
通常,所有单元解析配置都位于<IS_HOME>/repository/resources/conf/unit-resolve.json
文件中,并且由于您尚未在此处添加配置,因此您会收到上述错误。
您可以使用以下步骤来确定您遇到错误的地方。
<IS_HOME>/repository/resources/conf/default.json
文件并检查任何具有值300ms
的配置。300ms
的键值对是"cache.default_timeout":"300ms"
default.json
文件中使用上述键的任何引用。cache.default_timeout
已在多个地方使用,例如cache.authentication_context_cache.timeout, cache.authentication_request_cache.timeout, ...
.j2
模板中找到应用上述键的位置。cache.authentication_context_cache.timeout, cache.authentication_request_cache.timeout, ...
在identity.xml.j2
文件中使用了以下配置。<CacheManager name="IdentityApplicationManagementCacheManager">
<Cache id="framework_session_context_cache" name="AppAuthFrameworkSessionContextCache"
enable="{{cache.framework_session_context_cache.enable}}"
timeout="{{cache.framework_session_context_cache.timeout}}"
capacity="{{cache.framework_session_context_cache.capacity}}"
isDistributed="false"/>
....
</CacheManager>
300ms
的密钥所在的确切模板,因此请转到<IS_HOME>/repository/conf
目录中反映模板配置的文件。<IS_HOME>/repository/conf/identity/identity.xml
文件。 (因为identity.xml.j2
是identity.xml
文件的模板)300ms
,您会注意到类似于以下的配置。<Cache id="authentication_error_cache" name="AuthenticationErrorCache"
enable="true"
timeout="300ms"
capacity="5000"
isDistributed="false"/>
要解决上述错误,您可以采取两种方法,
deployment.toml
文件配置超时值虽然这不是您应该使用的方法,但如果您在识别导致错误的正确 XML 标记后进行以下配置,问题就会得到解决。
对于第 9 步的情况,我们可以看到我们应该配置authentication_error_cache
的超时时间。
为此,您可以将以下配置放入deployment.toml
并重新启动 IS。
[cache.authentication_error_cache]
timeout=300
unit-resolve.json
文件中配置超时单位上述错误的原因是因为unit-resolve.json
文件中缺少authentication_error_cache
单元解析配置。
您只需将负责问题的单位添加到unit-resolve.json
文件中,问题就会得到解决。
对于上述情况,您可以将以下内容添加到unit-resolve.json
文件中。 "cache.authentication_error_cache.timeout": "ms",
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.