UnsatisfiedLinkError
Greetings, I am getting an unsatisfied link error when I start up tomcat. Here are some of the specifics: System: Ubuntu 20.04 Tomcat: 9.0.73 APR: 1.7.2 OpenSSL: 3.1.0 Any help you can offer is greatly appreciated! Blake McBride Here is catalina.out: NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 24-Mar-2023 19:51:56.377 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.73 24-Mar-2023 19:51:56.381 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Feb 27 2023 15:33:40 UTC 24-Mar-2023 19:51:56.381 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.73.0 24-Mar-2023 19:51:56.381 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 24-Mar-2023 19:51:56.381 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.4.0-144-generic 24-Mar-2023 19:51:56.381 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 24-Mar-2023 19:51:56.381 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/java-17-openjdk-amd64 24-Mar-2023 19:51:56.381 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.6+10-Ubuntu-0ubuntu120.04.1 24-Mar-2023 19:51:56.381 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Private Build 24-Mar-2023 19:51:56.381 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /home/arahant/tomcat 24-Mar-2023 19:51:56.382 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /home/arahant/tomcat 24-Mar-2023 19:51:56.393 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED 24-Mar-2023 19:51:56.393 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED 24-Mar-2023 19:51:56.393 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED 24-Mar-2023 19:51:56.393 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED 24-Mar-2023 19:51:56.394 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 24-Mar-2023 19:51:56.394 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/home/arahant/tomcat/conf/logging.properties 24-Mar-2023 19:51:56.394 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 24-Mar-2023 19:51:56.394 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 24-Mar-2023 19:51:56.395 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 24-Mar-2023 19:51:56.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 24-Mar-2023 19:51:56.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms256M 24-Mar-2023 19:51:56.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx4524M 24-Mar-2023 19:51:56.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:+UseZGC 24-Mar-2023 19:51:56.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:-ZUncommit 24-Mar-2023 19:51:56.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.library.path=/usr/local/apr/lib 24-Mar-2023 19:51:56.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs= 24-Mar-2023 19:51:56.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/home/arahant/tomcat 24-Mar-2023 19:51:56.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/home/arahant/tomcat 24-Mar-2023 19:51:56.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/home/arahant/tomcat/temp 24-Mar-2023 19:51:56.400 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.3] using APR
Re: Can't get RemoteIpValve to work
And if you dump out the headers and the value of ServletRequest.getRemoteAddr() with (and without for completeness) the RemoteIpValve ? Mark On 24/03/2023 14:09, Leon Rosenberg wrote: Full log output (dumping out headers, without the valve): 6049752 2023-03-24 14:07:59,749 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: host; value: api.myhost.net 6049752 2023-03-24 14:07:59,749 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: user-agent; value: Wget/1.21.3 6049754 2023-03-24 14:07:59,751 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: accept; value: */* 6049754 2023-03-24 14:07:59,751 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: accept-encoding; value: identity 6049755 2023-03-24 14:07:59,752 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: x-forwarded-for; value: 217.110.113.178 6049756 2023-03-24 14:07:59,753 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: x-forwarded-host; value: api.myhost.net 6049757 2023-03-24 14:07:59,754 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: x-forwarded-server; value: api.myhost.net 6049758 2023-03-24 14:07:59,755 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: connection; value: Keep-Alive 217.110.113.178 is my ip, so the value is correct. On Fri, Mar 24, 2023 at 3:07 PM Leon Rosenberg wrote: yeah, interestingly enough removing ipvalve and adding access log magic, puts the X-Forwarded-For in the localhost_access.log ... but strange nevertheless. On Fri, Mar 24, 2023 at 11:44 AM Mark Thomas wrote: Maybe try commenting out the RemoteIpValve in Tomcat and retest so you can see exactly what headers Tomcat is seeing. Alternatively, since this is over http, Wireshark or similar could help. Mark On 24/03/2023 10:29, Leon Rosenberg wrote: Hi, we have following setup apache 2.4 on a ubuntu host, in front of docker-container with tomcat9 (on same host). Connection is via apache mod_http/proxy. Internal IP of the host is 10.138.0.3 (where httpd and docker are running). In localhost_access log we see always 10.138.0.3 address. If going through port 8080 directly, without httpd, we see the correct IP-Address. We have added RemoteIpValve to server xml. http config also has ProxyAddHeaders on, also I understand that to be default anyway: ProxyPass / http://10.138.0.3:8080/ ProxyPassReverse / http://10.138.0.3:8080/ ProxyErrorOverride Off ProxyAddHeaders On Require all granted ProxyAddHeaders On When we print out all headers in a request, the X-Forwarded-For is missing, so obviously tomcat does something with it, but doesn't trust the httpd? So probably the line internalProxies="10\.138\.0\.3" is wrong, bug I can't get my head around it. any help would be highly appreciated kr Leon - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Can't get RemoteIpValve to work
Full log output (dumping out headers, without the valve): 6049752 2023-03-24 14:07:59,749 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: host; value: api.myhost.net 6049752 2023-03-24 14:07:59,749 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: user-agent; value: Wget/1.21.3 6049754 2023-03-24 14:07:59,751 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: accept; value: */* 6049754 2023-03-24 14:07:59,751 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: accept-encoding; value: identity 6049755 2023-03-24 14:07:59,752 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: x-forwarded-for; value: 217.110.113.178 6049756 2023-03-24 14:07:59,753 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: x-forwarded-host; value: api.myhost.net 6049757 2023-03-24 14:07:59,754 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: x-forwarded-server; value: api.myhost.net 6049758 2023-03-24 14:07:59,755 [http-apr-8080-exec-13] INFO n.a.c.extapi.ping.PingResource:38 - key: connection; value: Keep-Alive 217.110.113.178 is my ip, so the value is correct. On Fri, Mar 24, 2023 at 3:07 PM Leon Rosenberg wrote: > yeah, interestingly enough removing ipvalve and adding access log magic, > puts the X-Forwarded-For in the localhost_access.log ... but strange > nevertheless. > > On Fri, Mar 24, 2023 at 11:44 AM Mark Thomas wrote: > >> Maybe try commenting out the RemoteIpValve in Tomcat and retest so you >> can see exactly what headers Tomcat is seeing. Alternatively, since this >> is over http, Wireshark or similar could help. >> >> Mark >> >> >> On 24/03/2023 10:29, Leon Rosenberg wrote: >> > Hi, >> > >> > we have following setup >> > apache 2.4 on a ubuntu host, in front of docker-container with tomcat9 >> (on >> > same host). >> > Connection is via apache mod_http/proxy. >> > >> > Internal IP of the host is 10.138.0.3 (where httpd and docker are >> running). >> > In localhost_access log we see always 10.138.0.3 address. If going >> through >> > port 8080 directly, without httpd, we see the correct IP-Address. >> > >> > We have added RemoteIpValve to server xml. >> > > > remoteIpHeader="X-Forwarded-For" >> > protocolHeader="X-Forwarded-Proto" >> > internalProxies="10\.138\.0\.3"/> >> > >> > http config also has ProxyAddHeaders on, also I understand that to be >> > default anyway: >> >ProxyPass / http://10.138.0.3:8080/ >> >ProxyPassReverse / http://10.138.0.3:8080/ >> >ProxyErrorOverride Off >> >ProxyAddHeaders On >> > >> > Require all granted >> > ProxyAddHeaders On >> > >> > >> > When we print out all headers in a request, the X-Forwarded-For is >> missing, >> > so obviously tomcat does something with it, but doesn't trust the >> httpd? So >> > probably the line internalProxies="10\.138\.0\.3" is wrong, bug I can't >> get >> > my head around it. >> > >> > any help would be highly appreciated >> > kr >> > Leon >> > >> >> - >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> >>
Re: Can't get RemoteIpValve to work
yeah, interestingly enough removing ipvalve and adding access log magic, puts the X-Forwarded-For in the localhost_access.log ... but strange nevertheless. On Fri, Mar 24, 2023 at 11:44 AM Mark Thomas wrote: > Maybe try commenting out the RemoteIpValve in Tomcat and retest so you > can see exactly what headers Tomcat is seeing. Alternatively, since this > is over http, Wireshark or similar could help. > > Mark > > > On 24/03/2023 10:29, Leon Rosenberg wrote: > > Hi, > > > > we have following setup > > apache 2.4 on a ubuntu host, in front of docker-container with tomcat9 > (on > > same host). > > Connection is via apache mod_http/proxy. > > > > Internal IP of the host is 10.138.0.3 (where httpd and docker are > running). > > In localhost_access log we see always 10.138.0.3 address. If going > through > > port 8080 directly, without httpd, we see the correct IP-Address. > > > > We have added RemoteIpValve to server xml. > > > remoteIpHeader="X-Forwarded-For" > > protocolHeader="X-Forwarded-Proto" > > internalProxies="10\.138\.0\.3"/> > > > > http config also has ProxyAddHeaders on, also I understand that to be > > default anyway: > >ProxyPass / http://10.138.0.3:8080/ > >ProxyPassReverse / http://10.138.0.3:8080/ > >ProxyErrorOverride Off > >ProxyAddHeaders On > > > > Require all granted > > ProxyAddHeaders On > > > > > > When we print out all headers in a request, the X-Forwarded-For is > missing, > > so obviously tomcat does something with it, but doesn't trust the httpd? > So > > probably the line internalProxies="10\.138\.0\.3" is wrong, bug I can't > get > > my head around it. > > > > any help would be highly appreciated > > kr > > Leon > > > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Can't get RemoteIpValve to work
Hi Konstantin, Server version: Apache Tomcat/9.0.64 Server built: Jun 2 2022 19:08:46 UTC Server number: 9.0.64.0 OS Name:Linux OS Version: 5.4.0-1092-gcp Architecture: amd64 JVM Version:1.8.0_332-b09 JVM Vendor: Temurin kr Leon On Fri, Mar 24, 2023 at 1:17 PM Konstantin Kolinko wrote: > пт, 24 мар. 2023 г. в 13:30, Leon Rosenberg : > > > > Hi, > > > > we have following setup > > apache 2.4 on a ubuntu host, in front of docker-container with tomcat9 > (on > > same host). > > Connection is via apache mod_http/proxy. > > > > Internal IP of the host is 10.138.0.3 (where httpd and docker are > running). > > In localhost_access log we see always 10.138.0.3 address. > > Your version of Tomcat = ? > > If access log is all that you care about, you should note that the default > value > of requestAttributesEnabled attribute of AccessLogValve is false. > > > https://tomcat.apache.org/tomcat-10.1-doc/config/valve.html#Access_Log_Valve > > Best regards, > Konstantin Kolinko > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Can't get RemoteIpValve to work
пт, 24 мар. 2023 г. в 13:30, Leon Rosenberg : > > Hi, > > we have following setup > apache 2.4 on a ubuntu host, in front of docker-container with tomcat9 (on > same host). > Connection is via apache mod_http/proxy. > > Internal IP of the host is 10.138.0.3 (where httpd and docker are running). > In localhost_access log we see always 10.138.0.3 address. Your version of Tomcat = ? If access log is all that you care about, you should note that the default value of requestAttributesEnabled attribute of AccessLogValve is false. https://tomcat.apache.org/tomcat-10.1-doc/config/valve.html#Access_Log_Valve Best regards, Konstantin Kolinko - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Can't get RemoteIpValve to work
Maybe try commenting out the RemoteIpValve in Tomcat and retest so you can see exactly what headers Tomcat is seeing. Alternatively, since this is over http, Wireshark or similar could help. Mark On 24/03/2023 10:29, Leon Rosenberg wrote: Hi, we have following setup apache 2.4 on a ubuntu host, in front of docker-container with tomcat9 (on same host). Connection is via apache mod_http/proxy. Internal IP of the host is 10.138.0.3 (where httpd and docker are running). In localhost_access log we see always 10.138.0.3 address. If going through port 8080 directly, without httpd, we see the correct IP-Address. We have added RemoteIpValve to server xml. http config also has ProxyAddHeaders on, also I understand that to be default anyway: ProxyPass / http://10.138.0.3:8080/ ProxyPassReverse / http://10.138.0.3:8080/ ProxyErrorOverride Off ProxyAddHeaders On Require all granted ProxyAddHeaders On When we print out all headers in a request, the X-Forwarded-For is missing, so obviously tomcat does something with it, but doesn't trust the httpd? So probably the line internalProxies="10\.138\.0\.3" is wrong, bug I can't get my head around it. any help would be highly appreciated kr Leon - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Can't get RemoteIpValve to work
Hi, we have following setup apache 2.4 on a ubuntu host, in front of docker-container with tomcat9 (on same host). Connection is via apache mod_http/proxy. Internal IP of the host is 10.138.0.3 (where httpd and docker are running). In localhost_access log we see always 10.138.0.3 address. If going through port 8080 directly, without httpd, we see the correct IP-Address. We have added RemoteIpValve to server xml. http config also has ProxyAddHeaders on, also I understand that to be default anyway: ProxyPass / http://10.138.0.3:8080/ ProxyPassReverse / http://10.138.0.3:8080/ ProxyErrorOverride Off ProxyAddHeaders On Require all granted ProxyAddHeaders On When we print out all headers in a request, the X-Forwarded-For is missing, so obviously tomcat does something with it, but doesn't trust the httpd? So probably the line internalProxies="10\.138\.0\.3" is wrong, bug I can't get my head around it. any help would be highly appreciated kr Leon
Redis Session Manager - add Fallback
Hi, I'm using the Redis Session Manager (https://jitpack.io/p/ran-jit/TomcatClusterRedisSessionManager) to replicate sessions in a Tomcat cluster. When the Redis database is down, a 500 response is returned in every request. In this case I would rather like to switch back to local session management. Like this I could at least serve jsp pages. There's already an issue for this https://github.com/redisson/redisson/issues/1651 but nobody seems to care about it. Does anybody have experience with the implementation of session managers? Maybe it would be easy to just write a thin "wrapper"? Exception stacktrace that is thrown when Redis is down: 21-Mar-2023 22:28:10.146 SEVERE [http-nio-8090-exec-10] org.apache.catalina.core.StandardHostValve.custom Exception Processing ErrorPage[errorCode=500, location=/fehlerseiten/500.jsp] org.apache.jasper.JasperException: javax.servlet.ServletException: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:638) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:499) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312) at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:394) at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:253) at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:348) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:173) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:417) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: javax.servlet.ServletException: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool at org.apache.jsp.fehlerseiten._500_jsp._jspService(_500_jsp.java:1106) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476) ... 26 more Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool at redis.clients.util.Pool.getResource(Pool.java:53) at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226) at redis.clients.jedis.JedisPool.getResource(JedisPool.java:16) at tomcat.request.session.data.cache.impl.redis.RedisManager.setnx(RedisManager.java:52) at tomcat.request.session.data.cache.impl.redis.RedisCache.setnx(RedisCache.java:33) at tomcat.request.session.redis.SessionManager.createSession(SessionManager.java:107) at tomcat.request.session.redis.SessionManager.createSession(SessionManager.java:31) at