Hi Chris, ________________________________ 寄件者: Christopher Schultz <ch...@christopherschultz.net> 寄件日期: 2023年7月27日 0:35 收件者: users@tomcat.apache.org <users@tomcat.apache.org> 主旨: Re: Persist function in host manager working in 9.0.60 but not 10.1.x
Mason, On 7/24/23 20:39, Fong Mason wrote: > Last month I setup a new Tomcat instance (10.1.9) since I want to have a try > of Spring 6.x. Everything was working fine until I need to add a new virtual > host. I had followed the instructions in > https://tomcat.apache.org/tomcat-10.1-doc/host-manager-howto.html to add a > new Listener in server.xml. After I added a new virtual host and pressed > “All” under persist configuration, the GUI said “OK - Configuration > persisted” but actually the config is not persisted. I checked the log and > found the following error: > org.apache.catalina.storeconfig.StoreConfig.store Error storing server > java.lang.NoSuchMethodExeption: > org.apache.catalina.realm.CombinedRealm$CombinedRealmCredentialHandler.<init>() > > I tried to upgrade to 10.1.11 but the same problem exists, the same also > happened for 9.0.78. > > Then I downloaded 9.0.60 to try as I have another server running it and the > persist function is working there. This time everything worked as expected. I > tried to look at the source code of 9.0.60 and seems there is no > ComibinedRealmCredentialHandler subclass in 9.0.60 but only in later > versions. I am not sure if this is the cause of the problem though. > > Any suggestion to make persist function work in host manager to work in 10.x? > Many thanks. > > Please find my environment for your reference > OS: Ubuntu Server 20.04.6 LTS > Tomcat: 9.0.78/10.1.9/10.1.11 > JVM: 17.0.7 (17.0.7.+7-Ubuntu-0ubuntu120.04), this is a package provided by > Ubuntu It looks like this is a problem with any use of the CombinedRealmCredentialHander: that class isn't effectively Serializable because the class is private. Can you post the full stack trace? -chris --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org Thanks for your response, please find the full stack trace found in the log of 10.1.11 as follow: (the ones for 9.0.78 and 10.1.9 are basically the same so I don't post them here) 25-Jul-2023 02:47:10.537 SEVERE [http-nio-8080-exec-5] org.apache.catalina.storeconfig.StoreConfig.store Error storing server java.lang.NoSuchMethodException: org.apache.catalina.realm.CombinedRealm$CombinedRealmCredentialHandler.<init>() at java.base/java.lang.Class.getConstructor0(Class.java:3585) at java.base/java.lang.Class.getConstructor(Class.java:2271) at org.apache.catalina.storeconfig.StoreAppender.defaultInstance(StoreAppender.java:334) at org.apache.catalina.storeconfig.StoreAppender.printAttributes(StoreAppender.java:233) at org.apache.catalina.storeconfig.StoreAppender.printAttributes(StoreAppender.java:195) at org.apache.catalina.storeconfig.StoreAppender.printOpenTag(StoreAppender.java:74) at org.apache.catalina.storeconfig.StoreFactoryBase.store(StoreFactoryBase.java:127) at org.apache.catalina.storeconfig.CredentialHandlerSF.store(CredentialHandlerSF.java:58) at org.apache.catalina.storeconfig.StoreFactoryBase.storeElement(StoreFactoryBase.java:171) at org.apache.catalina.storeconfig.RealmSF.storeChildren(RealmSF.java:89) at org.apache.catalina.storeconfig.RealmSF.store(RealmSF.java:49) at org.apache.catalina.storeconfig.StoreFactoryBase.storeElement(StoreFactoryBase.java:171) at org.apache.catalina.storeconfig.StandardEngineSF.storeChildren(StandardEngineSF.java:66) at org.apache.catalina.storeconfig.StoreFactoryBase.store(StoreFactoryBase.java:129) at org.apache.catalina.storeconfig.StandardServiceSF.storeChildren(StandardServiceSF.java:63) at org.apache.catalina.storeconfig.StoreFactoryBase.store(StoreFactoryBase.java:129) at org.apache.catalina.storeconfig.StoreFactoryBase.storeElement(StoreFactoryBase.java:171) at org.apache.catalina.storeconfig.StoreFactoryBase.storeElementArray(StoreFactoryBase.java:192) at org.apache.catalina.storeconfig.StandardServerSF.storeChildren(StandardServerSF.java:97) at org.apache.catalina.storeconfig.StoreFactoryBase.store(StoreFactoryBase.java:129) at org.apache.catalina.storeconfig.StandardServerSF.store(StandardServerSF.java:51) at org.apache.catalina.storeconfig.StoreConfig.store(StoreConfig.java:317) at org.apache.catalina.storeconfig.StoreConfig.store(StoreConfig.java:229) at org.apache.catalina.storeconfig.StoreConfig.storeConfig(StoreConfig.java:106) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:294) at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:814) at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802) at org.apache.catalina.manager.host.HostManagerServlet.persist(HostManagerServlet.java:672) at org.apache.catalina.manager.host.HTMLHostManagerServlet.persist(HTMLHostManagerServlet.java:241) at org.apache.catalina.manager.host.HTMLHostManagerServlet.doPost(HTMLHostManagerServlet.java:146) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:190) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:129) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:597) at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:355) at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:54) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) Many thanks Mason