# Enable APM for springboot running on windows

**URL:** <https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568>\
**Category:** APM\
**Tags:** java\
**Created:** [November 20, 2025, 6:56pm UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568 "2025-11-20T18:56:17Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 20, 2025, 6:56pm UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/1 "2025-11-20T18:56:17Z")

</div>

Hello ,

I want to enable APM for java application running on tomcat server(windows). I’ve followed the steps mentioned in the [setup-tomcat-windows](https://www.elastic.co/docs/reference/apm/agents/java/setup-javaagent#setup-tomcat-windows) . I have restarted the tomcat service running on windows but it was not working. I don’t know how to configure the environment variables in windows . I know we can set up these variables in tomcat9w.exe file but i don’t want to touch the any .exe file . Below is the output of setenv.bat present in C:/tomcat9/bin/

```auto
set CATALINA_OPTS=%CATALINA_OPTS% -javaagent:C:\APM\elastic-apm-agent.jar
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.service_name=my-cool-service
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.server_url=https://apm-url
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.environment=Development
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.secret_token=secret_token

```

How can we load the environment variable by creating .bat file in tomcat ?

---

<div class="post-metadata">

**Author:** ![Sylvain\_Juge](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sylvain_juge/32/55521_2.png) [@Sylvain\_Juge](https://discuss.elastic.co/u/Sylvain_Juge)\
**Post date:** [November 20, 2025, 8:33pm UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/2 "2025-11-20T20:33:32Z")

</div>

Hi !

First I would suggest to add quotes to be sure that the values are the ones we expect, you should also be able to use / instead of \ for file path to prevent any unexpected escape sequence.

```auto
set CATALINA_OPTS=""
set CATALINA_OPTS="%CATALINA_OPTS% -javaagent:C:/APM/lastic-apm-agent.jar"
set CATALINA_OPTS="%CATALINA_OPTS% -Delastic.apm.service_name=my-cool-service"
set CATALINA_OPTS="%CATALINA_OPTS% -Delastic.apm.server_url=https://apm-url"
set CATALINA_OPTS="%CATALINA_OPTS% -Delastic.apm.environment=Development"
set CATALINA_OPTS="%CATALINA_OPTS% -Delastic.apm.secret_token=secret_token"

```

Then, when tomcat starts, you should have some or all of those values printed in the tomcat log, do you have anything there ?

Also, if the `-javaagent` argument does not point to a valid instrumentation agent, the JVM will fail to start with an explicit log message.

---

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 21, 2025, 6:12am UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/3 "2025-11-21T06:12:08Z")

</div>

> [@Sylvain\_Juge](#):
>
> `set CATALINA_OPTS=""`

Hi @Sylvain_Juge ,

I have modified setenv.bat , but still i am not able to get the data.

```bash

set CATALINA_OPTS=""
set CATALINA_OPTS="%CATALINA_OPTS% -javaagent:C:/APM/elastic-apm-agent.jar"
set CATALINA_OPTS="%CATALINA_OPTS% -Delastic.apm.service_name=my-cool-service"
set CATALINA_OPTS="%CATALINA_OPTS% -Delastic.apm.server_url=https://apm-server:443"
set CATALINA_OPTS="%CATALINA_OPTS% -Delastic.apm.environment=Development"
set CATALINA_OPTS="%CATALINA_OPTS% -Delastic.apm.secret_token=secret_token"

```

---

<div class="post-metadata">

**Author:** ![Sylvain\_Juge](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sylvain_juge/32/55521_2.png) [@Sylvain\_Juge](https://discuss.elastic.co/u/Sylvain_Juge)\
**Post date:** [November 21, 2025, 10:36am UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/4 "2025-11-21T10:36:21Z")

</div>

The first thing to check is that the JVM options like `-javaagent` are properly passed to the JVM.

To do that, the simplest solution is to use `jps -lv` with CLI, or to use `jconsole`, then look at the parameters of the running JVMs.

Then, once you are sure the parameters are properly added to the JVM arguments, in CLI you should try to run tomcat with `bin/catalina.bat run` , if everything is setup properly the `Starting Elastic APM` message will be visible in the logs on the standard output, with the agent version.

If everything is working as expected, the next step is to trigger a few HTTP requests on your application/tomcat server, then wait for the data to be sent to the APM backend. If there are any communication issues this should be visible in the standard output as well.

---

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 21, 2025, 6:22pm UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/5 "2025-11-21T18:22:50Z")

</div>

Hi @Sylvain_Juge ,

I run `jps -lv` command on cmd and below is the output

```auto
C:\Program Files\Java\jdk-25\bin>jps.exe -lv
880 jdk.jcmd/sun.tools.jps.Jps -Dapplication.home=C:\Program Files\Java\jdk-25 -Xms8m -Djdk.module.main=jdk.jcmd

```

Output of catalina.bat

```auto
C:\apache-tomcat-9\bin>catalina.bat run
Using CATALINA_BASE: "C:\apache-tomcat-9"
Using CATALINA_HOME: "C:\apache-tomcat-9"
Using CATALINA_TMPDIR: "C:\apache-tomcat-9\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk-25\"
Using CLASSPATH: "C:\apache-tomcat-9\bin\bootstrap.jar;C:\apache-tomcat-9\bin\tomcat-juli.jar"
Using CATALINA_OPTS: """""""" -javaagent:C:/APM/elastic-apm-agent.jar" -Delastic.apm.service_name=my-cool-service" -Delastic.apm.server_url=https://50657be900ce43f2bd5c58af83ae4733.centralindia.azure.elastic-cloud.com:443" -Delastic.apm.environment=Development" -Delastic.apm.secret_token=gJYP5lxGQx0tnIniMH""
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=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
Error: Could not find or load main class """ -javaagent:C:.APM.elastic-apm-agent.jar
Caused by: java.lang.ClassNotFoundException: """ -javaagent:C:.APM.elastic-apm-agent.jar

```

I don’t know why it is not setting environment variables properly

---

<div class="post-metadata">

**Author:** ![Tortoise](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tortoise/32/147587_2.png) [@Tortoise](https://discuss.elastic.co/u/Tortoise)\
**Post date:** [November 22, 2025, 6:32am UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/6 "2025-11-22T06:32:56Z")

</div>

Hello @Aniket_Pant

As per the documentation we do not see the quotes can that be causing issue? also in your output we do see the error :

`Error: Could not find or load main class """ -javaagent:C:.APM.elastic-apm-agent.jar`  
`Caused by: java.lang.ClassNotFoundException: """ -javaagent:C:.APM.elastic-apm-agent.jar`

> **[Manual setup with -javaagent flag | APM Java agent](https://www.elastic.co/docs/reference/apm/agents/java/setup-javaagent)**
>
> Using the -javaagent option is the most common way to set up java agents on a JVM, it has the following properties: No application code changes required.Requires...

Could you please try without the quotes?

```auto
set CATALINA_OPTS=%CATALINA_OPTS% -javaagent:C:/path/to/elastic-apm-agent-<version>.jar
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.service_name=my-cool-service
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.application_packages=org.example,org.another.example
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.server_url=http://127.0.0.1:8200

```

I think like below and see what is the error ?

```auto
set CATALINA_OPTS=
set CATALINA_OPTS=%CATALINA_OPTS% -javaagent:C:/APM/elastic-apm-agent.jar
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.service_name=my-cool-service
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.server_url=https://50657be900ce43f2bd5c58af83ae4733.centralindia.azure.elastic-cloud.com:443
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.environment=Development
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.secret_token=gJYP5lxGQx0tnIniMH

```

Thanks!!

---

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 22, 2025, 7:34am UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/7 "2025-11-22T07:34:37Z")

</div>

Hi @Tortoise ,

Now i am using below environment variable.

```bash
set CATALINA_OPTS=
set CATALINA_OPTS=%CATALINA_OPTS% -javaagent:C:\APM\elastic-apm-agent.jar
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.service_name=Login_UI
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.server_url=https://50657be900ce43f2bd5c58af83ae4733.centralindia.azure.elastic-cloud.com:443
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.environment=Development
set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.secret_token=gJYP5lxGQx0tnIniMH

```

After that i run `catalina.bat run` and i got my application performance metrics.

```auto
C:\apache-tomcat-9\bin>catalina.bat run
Using CATALINA_BASE: "C:\apache-tomcat-9"
Using CATALINA_HOME: "C:\apache-tomcat-9"
Using CATALINA_TMPDIR: "C:\apache-tomcat-9\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk-25\"
Using CLASSPATH: "C:\apache-tomcat-9\bin\bootstrap.jar;C:\apache-tomcat-9\bin\tomcat-juli.jar"
Using CATALINA_OPTS: " -javaagent:C:\APM\elastic-apm-agent.jar -Delastic.apm.service_name=Login_UI -Delastic.apm.server_url=https://50657be900ce43f2bd5c58af83ae4733.centralindia.azure.elastic-cloud.com:443 -Delastic.apm.environment=Development -Delastic.apm.secret_token=gJYP5lxGQx0tnIniMH"
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=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
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
WARNING: sun.misc.Unsafe::arrayBaseOffset has been called by com.lmax.disruptor.RingBufferFields (file:/C:/APM/elastic-apm-agent.jar)
WARNING: Please consider reporting this to the maintainers of class com.lmax.disruptor.RingBufferFields
WARNING: sun.misc.Unsafe::arrayBaseOffset will be removed in a future release
2025-11-22 13:00:39,258 [main] INFO co.elastic.apm.agent.util.JmxUtils - Found JVM-specific OperatingSystemMXBean interface: com.sun.management.OperatingSystemMXBean
2025-11-22 13:00:39,278 [main] INFO co.elastic.apm.agent.util.JmxUtils - Found JVM-specific ThreadMXBean interface: com.sun.management.ThreadMXBean
2025-11-22 13:00:39,314 [main] INFO co.elastic.apm.agent.configuration.StartupInfo - Starting Elastic APM 1.54.0 as Login_UI on Java 25.0.1 Runtime version: 25.0.1+8-LTS-27 VM version: 25.0.1+8-LTS-27 (Oracle Corporation) Windows 10 10.0
2025-11-22 13:00:39,318 [main] INFO co.elastic.apm.agent.configuration.StartupInfo - service_name: 'Login_UI' (source: Java System Properties)
2025-11-22 13:00:39,321 [main] INFO co.elastic.apm.agent.configuration.StartupInfo - environment: 'Development' (source: Java System Properties)
2025-11-22 13:00:39,324 [main] INFO co.elastic.apm.agent.configuration.StartupInfo - secret_token: 'XXXX' (source: Java System Properties)
2025-11-22 13:00:39,326 [main] INFO co.elastic.apm.agent.configuration.StartupInfo - server_url: 'https://50657be900ce43f2bd5c58af83ae4733.centralindia.azure.elastic-cloud.com:443' (source: Java System Properties)
2025-11-22 13:00:39,334 [main] WARN co.elastic.apm.agent.configuration.StartupInfo - To enable all features and decrease startup time, please configure application_packages
2025-11-22 13:00:40,251 [elastic-apm-metadata-0] INFO co.elastic.apm.agent.impl.metadata.SystemInfo - Failed to execute command "powershell.exe -NoLogo -NonInteractive -NoProfile -ExecutionPolicy Bypass -Command [System.Net.Dns]::GetHostEntry($env:computerName).HostName" with exit code 1
2025-11-22 13:00:42,417 [main] INFO co.elastic.apm.agent.impl.ElasticApmTracer - Tracer switched to RUNNING state
2025-11-22 13:00:43,289 [elastic-apm-server-healthcheck] INFO co.elastic.apm.agent.report.ApmServerHealthChecker - Elastic APM server is available: { "build_date": "2025-11-06T16:40:45Z", "build_sha": "08b07c99f47ff927eec5b2c0d8c560d8ff95086d", "publish_ready": true, "version": "8.19.7"}
2025-11-22 13:00:43,343 [elastic-apm-remote-config-poller] INFO co.elastic.apm.agent.configuration.ApmServerConfigurationSource - Received new configuration from APM Server: {}
22-Nov-2025 13:00:43.246 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.112
22-Nov-2025 13:00:43.398 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Nov 6 2025 07:46:18 UTC
22-Nov-2025 13:00:43.401 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.112.0
22-Nov-2025 13:00:43.402 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 10
22-Nov-2025 13:00:43.403 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 10.0
22-Nov-2025 13:00:43.405 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
22-Nov-2025 13:00:43.406 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Program Files\Java\jdk-25
22-Nov-2025 13:00:43.407 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 25.0.1+8-LTS-27
22-Nov-2025 13:00:43.409 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
22-Nov-2025 13:00:43.410 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\apache-tomcat-9
22-Nov-2025 13:00:43.412 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\apache-tomcat-9
22-Nov-2025 13:00:43.413 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
22-Nov-2025 13:00:43.420 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
22-Nov-2025 13:00:43.422 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
22-Nov-2025 13:00:43.424 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
22-Nov-2025 13:00:43.425 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
22-Nov-2025 13:00:43.427 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
22-Nov-2025 13:00:43.428 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
22-Nov-2025 13:00:43.429 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\apache-tomcat-9\conf\logging.properties
22-Nov-2025 13:00:43.430 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
22-Nov-2025 13:00:43.434 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
22-Nov-2025 13:00:43.436 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
22-Nov-2025 13:00:43.438 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
22-Nov-2025 13:00:43.440 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -javaagent:C:\APM\elastic-apm-agent.jar
22-Nov-2025 13:00:43.441 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Delastic.apm.service_name=Login_UI
22-Nov-2025 13:00:43.442 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Delastic.apm.server_url=https://50657be900ce43f2bd5c58af83ae4733.centralindia.azure.elastic-cloud.com:443
22-Nov-2025 13:00:43.444 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Delastic.apm.environment=Development
22-Nov-2025 13:00:43.445 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Delastic.apm.secret_token=gJYP5lxGQx0tnIniMH
22-Nov-2025 13:00:43.450 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
22-Nov-2025 13:00:43.451 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\apache-tomcat-9
22-Nov-2025 13:00:43.454 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\apache-tomcat-9
22-Nov-2025 13:00:43.455 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\apache-tomcat-9\temp
WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::load has been called by org.apache.tomcat.jni.Library in an unnamed module (file:/C:/apache-tomcat-9/lib/tomcat-jni.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabled

22-Nov-2025 13:00:43.476 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
22-Nov-2025 13:00:43.477 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
22-Nov-2025 13:00:43.478 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
22-Nov-2025 13:00:43.493 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
22-Nov-2025 13:00:43.980 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
22-Nov-2025 13:00:44.014 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1296] milliseconds
22-Nov-2025 13:00:44.088 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
22-Nov-2025 13:00:44.091 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.112]
22-Nov-2025 13:00:44.131 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\apache-tomcat-9\webapps\ROOT.war]
22-Nov-2025 13:00:47.450 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.

  . _______ _ _
 /\\ / ___'___ _ _(_)_ ____ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
  ' | ____| .__ |_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot :: (v2.7.18)

2025-11-22 13:00:49.789 INFO 9016 --- [main] com.example.loginapp.LoginApplication : Starting LoginApplication v1.0.0 using Java 25.0.1 on DESKTOP-9LCF4FQ with PID 9016 (C:\apache-tomcat-9\webapps\ROOT\WEB-INF\classes started by panta in C:\apache-tomcat-9\bin)
2025-11-22 13:00:49.799 INFO 9016 --- [main] com.example.loginapp.LoginApplication : No active profile set, falling back to 1 default profile: "default"
2025-11-22 13:00:52.669 INFO 9016 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2780 ms
2025-11-22 13:00:54.321 INFO 9016 --- [main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@2b79945f, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@596eebdb, org.springframework.security.web.context.SecurityContextPersistenceFilter@1d45c571, org.springframework.security.web.header.HeaderWriterFilter@618ffc7a, org.springframework.security.web.csrf.CsrfFilter@4df62e64, org.springframework.security.web.authentication.logout.LogoutFilter@50ed196f, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@2feaa16c, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@3ecf69eb, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1545b9da, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@4ed507b0, org.springframework.security.web.session.SessionManagementFilter@3c4c595e, org.springframework.security.web.access.ExceptionTranslationFilter@394c61cb, org.springframework.security.web.access.intercept.AuthorizationFilter@4da1d61b]
2025-11-22 13:00:55.543 INFO 9016 --- [main] com.example.loginapp.LoginApplication : Started LoginApplication in 7.212 seconds (JVM running for 17.662)
2025-11-22 13:00:55,630 [main] INFO co.elastic.apm.agent.servlet.ServletVersionInstrumentation - Servlet container info = Apache Tomcat/9.0.112
22-Nov-2025 13:00:55.657 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\apache-tomcat-9\webapps\ROOT.war] has finished in [11,526] ms
22-Nov-2025 13:00:55.661 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\apache-tomcat-9\webapps\spring-login-app-1.0.0.war]
22-Nov-2025 13:00:55.824 WARNING [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used.
22-Nov-2025 13:00:58.208 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
22-Nov-2025 13:00:58.224 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\apache-tomcat-9\webapps\spring-login-app-1.0.0.war] has finished in [2,563] ms
22-Nov-2025 13:00:58.226 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\docs]
22-Nov-2025 13:00:58.278 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\docs] has finished in [52] ms
22-Nov-2025 13:00:58.279 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\examples]
22-Nov-2025 13:00:58.948 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\examples] has finished in [668] ms
22-Nov-2025 13:00:58.949 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\host-manager]
22-Nov-2025 13:00:59.030 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\host-manager] has finished in [81] ms
22-Nov-2025 13:00:59.032 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\manager]
22-Nov-2025 13:00:59.092 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\manager] has finished in [61] ms
22-Nov-2025 13:00:59.103 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
22-Nov-2025 13:00:59.133 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [15116] milliseconds

```

Next i do close the terminal and run the tomcat as service from service.msc then it is not working and in the logs no apm related logs are showing and even apm variable is not there.

---

<div class="post-metadata">

**Author:** ![Tortoise](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tortoise/32/147587_2.png) [@Tortoise](https://discuss.elastic.co/u/Tortoise)\
**Post date:** [November 22, 2025, 10:04am UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/8 "2025-11-22T10:04:37Z")

</div>

Hello @Aniket_Pant

As Sylvian suggested now you are able to see the below message in the log which means the configuration is correct :

```auto
2025-11-22 13:00:39,314 [main] INFO co.elastic.apm.agent.configuration.StartupInfo - Starting Elastic APM 1.54.0 as Login_UI on Java 25.0.1 Runtime version: 25.0.1+8-LTS-27 VM version: 25.0.1+8-LTS-27 (Oracle Corporation) Windows 10 10.0

```

Next maybe you should try below :

If everything is working as expected, the next step is to trigger a few HTTP requests on your application/tomcat server, then wait for the data to be sent to the APM backend. If there are any communication issues this should be visible in the standard output as well.

Thanks!!

---

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 22, 2025, 1:40pm UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/9 "2025-11-22T13:40:27Z")

</div>

Hi @Tortoise

It is working when i am running tomcat by using startup.bat and catalina.bat , however if i run tomcat as tomcat9 service then it is not working. The service file is not taking up the environment variable. I have pasted the logs below for your reference.

```auto
22-Nov-2025 18:55:22.280 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.112
22-Nov-2025 18:55:22.285 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Nov 6 2025 07:46:18 UTC
22-Nov-2025 18:55:22.286 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.112.0
22-Nov-2025 18:55:22.286 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 10
22-Nov-2025 18:55:22.286 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 10.0
22-Nov-2025 18:55:22.287 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
22-Nov-2025 18:55:22.287 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Program Files\Java\jdk-25
22-Nov-2025 18:55:22.287 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 25.0.1+8-LTS-27
22-Nov-2025 18:55:22.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
22-Nov-2025 18:55:22.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\apache-tomcat-9
22-Nov-2025 18:55:22.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\apache-tomcat-9
22-Nov-2025 18:55:22.300 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\apache-tomcat-9
22-Nov-2025 18:55:22.300 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\apache-tomcat-9
22-Nov-2025 18:55:22.301 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=C:\apache-tomcat-9\endorsed
22-Nov-2025 18:55:22.301 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\apache-tomcat-9\temp
22-Nov-2025 18:55:22.301 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
22-Nov-2025 18:55:22.301 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\apache-tomcat-9\conf\logging.properties
22-Nov-2025 18:55:22.302 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
22-Nov-2025 18:55:22.302 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
22-Nov-2025 18:55:22.302 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
22-Nov-2025 18:55:22.302 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
22-Nov-2025 18:55:22.302 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
22-Nov-2025 18:55:22.303 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
22-Nov-2025 18:55:22.303 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
22-Nov-2025 18:55:22.303 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
22-Nov-2025 18:55:22.303 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: exit
22-Nov-2025 18:55:22.303 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: abort
22-Nov-2025 18:55:22.304 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms512m
22-Nov-2025 18:55:22.304 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx1024m
22-Nov-2025 18:55:22.446 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
22-Nov-2025 18:55:22.446 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
22-Nov-2025 18:55:22.447 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
22-Nov-2025 18:55:22.460 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
22-Nov-2025 18:55:23.042 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
22-Nov-2025 18:55:23.082 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1124] milliseconds
22-Nov-2025 18:55:23.162 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
22-Nov-2025 18:55:23.162 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.112]
22-Nov-2025 18:55:23.217 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\apache-tomcat-9\webapps\ROOT.war]
22-Nov-2025 18:55:29.453 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
22-Nov-2025 18:55:35.205 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\apache-tomcat-9\webapps\ROOT.war] has finished in [11,985] ms
22-Nov-2025 18:55:35.234 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\apache-tomcat-9\webapps\spring-login-app-1.0.0.war]
22-Nov-2025 18:55:37.874 WARNING [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used.
22-Nov-2025 18:55:40.699 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
22-Nov-2025 18:55:40.710 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\apache-tomcat-9\webapps\spring-login-app-1.0.0.war] has finished in [5,476] ms
22-Nov-2025 18:55:40.711 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\docs]
22-Nov-2025 18:55:40.803 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\docs] has finished in [92] ms
22-Nov-2025 18:55:40.804 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\examples]
22-Nov-2025 18:55:43.186 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\examples] has finished in [2,382] ms
22-Nov-2025 18:55:43.187 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\host-manager]
22-Nov-2025 18:55:43.310 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\host-manager] has finished in [122] ms
22-Nov-2025 18:55:43.310 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\manager]
22-Nov-2025 18:55:43.409 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\manager] has finished in [99] ms
22-Nov-2025 18:55:43.416 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
22-Nov-2025 18:55:43.464 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [20379] milliseconds
22-Nov-2025 19:01:09.853 INFO [Thread-3] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
22-Nov-2025 19:01:09.872 INFO [Thread-3] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
22-Nov-2025 19:01:09.950 INFO [Thread-3] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
22-Nov-2025 19:01:09.965 INFO [Thread-3] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
22-Nov-2025 19:01:11.929 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.112
22-Nov-2025 19:01:11.934 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Nov 6 2025 07:46:18 UTC
22-Nov-2025 19:01:11.934 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.112.0
22-Nov-2025 19:01:11.934 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 10
22-Nov-2025 19:01:11.934 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 10.0
22-Nov-2025 19:01:11.935 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
22-Nov-2025 19:01:11.935 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Program Files\Java\jdk-25
22-Nov-2025 19:01:11.935 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 25.0.1+8-LTS-27
22-Nov-2025 19:01:11.936 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
22-Nov-2025 19:01:11.936 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\apache-tomcat-9
22-Nov-2025 19:01:11.936 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\apache-tomcat-9
22-Nov-2025 19:01:11.949 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\apache-tomcat-9
22-Nov-2025 19:01:11.949 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\apache-tomcat-9
22-Nov-2025 19:01:11.949 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=C:\apache-tomcat-9\endorsed
22-Nov-2025 19:01:11.949 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\apache-tomcat-9\temp
22-Nov-2025 19:01:11.949 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
22-Nov-2025 19:01:11.950 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\apache-tomcat-9\conf\logging.properties
22-Nov-2025 19:01:11.950 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
22-Nov-2025 19:01:11.950 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
22-Nov-2025 19:01:11.950 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
22-Nov-2025 19:01:11.951 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
22-Nov-2025 19:01:11.951 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
22-Nov-2025 19:01:11.951 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
22-Nov-2025 19:01:11.951 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
22-Nov-2025 19:01:11.951 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
22-Nov-2025 19:01:11.952 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: exit
22-Nov-2025 19:01:11.952 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: abort
22-Nov-2025 19:01:11.952 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms512m
22-Nov-2025 19:01:11.952 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx1024m
22-Nov-2025 19:01:11.959 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
22-Nov-2025 19:01:11.959 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
22-Nov-2025 19:01:11.959 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
22-Nov-2025 19:01:11.973 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
22-Nov-2025 19:01:12.529 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
22-Nov-2025 19:01:12.569 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [949] milliseconds
22-Nov-2025 19:01:12.635 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
22-Nov-2025 19:01:12.635 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.112]
22-Nov-2025 19:01:12.661 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\apache-tomcat-9\webapps\ROOT.war]
22-Nov-2025 19:01:16.526 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
22-Nov-2025 19:01:22.471 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\apache-tomcat-9\webapps\ROOT.war] has finished in [9,807] ms
22-Nov-2025 19:01:22.474 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\apache-tomcat-9\webapps\spring-login-app-1.0.0.war]
22-Nov-2025 19:01:22.668 WARNING [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used.
22-Nov-2025 19:01:25.481 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
22-Nov-2025 19:01:25.495 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\apache-tomcat-9\webapps\spring-login-app-1.0.0.war] has finished in [3,022] ms
22-Nov-2025 19:01:25.496 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\docs]
22-Nov-2025 19:01:25.559 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\docs] has finished in [62] ms
22-Nov-2025 19:01:25.560 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\examples]
22-Nov-2025 19:01:26.113 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\examples] has finished in [553] ms
22-Nov-2025 19:01:26.113 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\host-manager]
22-Nov-2025 19:01:26.173 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\host-manager] has finished in [59] ms
22-Nov-2025 19:01:26.173 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9\webapps\manager]
22-Nov-2025 19:01:26.230 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9\webapps\manager] has finished in [56] ms
22-Nov-2025 19:01:26.238 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
22-Nov-2025 19:01:26.263 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [13692] milliseconds

```

---

<div class="post-metadata">

**Author:** ![Tortoise](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tortoise/32/147587_2.png) [@Tortoise](https://discuss.elastic.co/u/Tortoise)\
**Post date:** [November 23, 2025, 4:27am UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/10 "2025-11-23T04:27:02Z")

</div>

Hello @Aniket_Pant

From the below post i believe the location of setenv.bat can be causing issue ?

> [@APM Java Agent - manual setup](https://discuss.elastic.co/t/apm-java-agent-manual-setup/258581/4):
>
> I'm not sure about it, but where did you created the setenv.sh file ? Is it in $CATALINA\_BASE/bin/setenv.sh or $CATALINA\_HOME/bin/setenv.sh org.apache.catalina.startup.VersionLoggerListener.log CATALINA\_BASE: /var/lib/tomcat9 org.apache.catalina.startup.VersionLoggerListener.log CATALINA\_HOME: /usr/share/tomcat9

In your case we see below :

> [@Aniket\_Pant](#):
>
> Below is the output of setenv.bat present in C:/tomcat9/bin/

As per the logs shared it should be available in path C:\apache-tomcat-9\bin :

```properties
22-Nov-2025 18:55:22.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\apache-tomcat-9
22-Nov-2025 18:55:22.288 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\apache-tomcat-9

```

Thanks!!

---

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 23, 2025, 6:16am UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/11 "2025-11-23T06:16:45Z")

</div>

Sorry i mentioned wrong path.

setenv.bat is present only in `C:\apache-tomcat-9\bin`

```auto

 Directory of C:\apache-tomcat-9\bin

11/23/2025 11:33 AM <DIR> .
11/23/2025 11:33 AM <DIR> ..
11/21/2025 11:15 PM <DIR> ${catalina.base}
11/06/2025 07:46 AM 35,756 bootstrap.jar
11/06/2025 07:46 AM 1,703 catalina-tasks.xml
11/06/2025 07:46 AM 17,521 catalina.bat
11/06/2025 07:46 AM 25,909 catalina.sh
11/06/2025 07:46 AM 2,123 ciphers.bat
11/06/2025 07:46 AM 1,997 ciphers.sh
11/06/2025 07:46 AM 26,670 commons-daemon.jar
11/06/2025 07:46 AM 2,040 configtest.bat
11/06/2025 07:46 AM 1,922 configtest.sh
11/06/2025 07:46 AM 9,100 daemon.sh
11/06/2025 07:46 AM 2,091 digest.bat
11/06/2025 07:46 AM 1,965 digest.sh
11/06/2025 07:46 AM 3,606 makebase.bat
11/06/2025 07:46 AM 3,382 makebase.sh
11/06/2025 07:46 AM 9,637 service.bat
11/06/2025 07:46 AM 3,814 setclasspath.bat
11/06/2025 07:46 AM 4,317 setclasspath.sh
11/23/2025 11:27 AM 460 setenv.bat
11/06/2025 07:46 AM 2,020 shutdown.bat
11/06/2025 07:46 AM 1,902 shutdown.sh
11/06/2025 07:46 AM 2,022 startup.bat
11/06/2025 07:46 AM 1,904 startup.sh
11/06/2025 07:46 AM 3,586,048 tcnative-1.dll
11/06/2025 07:46 AM 53,445 tomcat-juli.jar
11/06/2025 07:46 AM 152,944 tomcat9.exe
11/06/2025 07:46 AM 136,048 tomcat9w.exe
11/06/2025 07:46 AM 4,576 tool-wrapper.bat
11/06/2025 07:46 AM 5,540 tool-wrapper.sh
11/06/2025 07:46 AM 2,026 version.bat
11/06/2025 07:46 AM 1,908 version.sh
              30 File(s) 4,104,396 bytes
               3 Dir(s) 113,566,490,624 bytes free

C:\apache-tomcat-9\bin>

```

---

<div class="post-metadata">

**Author:** ![Sylvain\_Juge](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sylvain_juge/32/55521_2.png) [@Sylvain\_Juge](https://discuss.elastic.co/u/Sylvain_Juge)\
**Post date:** [November 24, 2025, 8:23am UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/12 "2025-11-24T08:23:55Z")

</div>

When running as a Windows service, it is likely that the environment variables set through the usual `setenv.bat` are ignored, you should use the `tomcat9w` executable to edit the service configuration: [Apache Tomcat 9 (9.0.112) - Windows Service How-To](https://tomcat.apache.org/tomcat-9.0-doc/windows-service-howto.html)

---

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 24, 2025, 10:18am UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/13 "2025-11-24T10:18:20Z")

</div>

@Sylvain_Juge yesterday i research on this that when tomcat is running as service on windows(don’t know about linux) it won’t read setenv.bat file , we have to configure in tomcat9w.exe . I did it.  
I think elastic has to document below advise also .

> When running as a Windows service, it is likely that the environment variables set through the usual `setenv.bat` are ignored, you should use the `tomcat9w` executable to edit the service configuration: [Apache Tomcat 9 (9.0.112) - Windows Service How-To](https://tomcat.apache.org/tomcat-9.0-doc/windows-service-howto.html)

Thanks,

---

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 24, 2025, 10:38am UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/14 "2025-11-24T10:38:16Z")

</div>

Thanks @Tortoise @Sylvain_Juge for your support.

---

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 24, 2025, 12:33pm UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/15 "2025-11-24T12:33:53Z")

</div>

I am sorry i am asking another question . Whatever i did is testing one java app (running on tomcat) on my system. I want to test in client system , so i have javaagent parameter , restart the tomcat service and on kibana service inventory i was able to see the service name but not getting transactions data .

---

<div class="post-metadata">

**Author:** ![Sylvain\_Juge](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sylvain_juge/32/55521_2.png) [@Sylvain\_Juge](https://discuss.elastic.co/u/Sylvain_Juge)\
**Post date:** [November 24, 2025, 1:08pm UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/16 "2025-11-24T13:08:43Z")

</div>

In this case this is probably because the client application is not using one for the [supported technologies](https://www.elastic.co/docs/reference/apm/agents/java/supported-technologies).

In this case, you should try with the [EDOT Java](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/java) agent instead, as it has broader support.

---

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 24, 2025, 1:50pm UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/17 "2025-11-24T13:50:27Z")

</div>

Hi @Sylvain_Juge ,

How can we get to know the client app is using this java technology not this. The application team told me that they are using java and tomcat.

---

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 24, 2025, 5:40pm UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/18 "2025-11-24T17:40:54Z")

</div>

Now in tomcat9w.ext i have otel parameters.

```auto
-Dotel.exporter.otlp.endpoint=https://50657be900ce43f2bd5c58af83ae4733.centralindia.azure.elastic-cloud.com:443
-Dotel.resource.attributes=service.name=Login_UI,deployment.environment=Development
-Dotel.exporter.otlp.headers=Authorization=Bearer <token>
-Dotel.metric.exporter=otlp
-Dotel.logs.exporter=otlp

```

But in transactions i am getting weird APIs.`POST /*` , `GET /**`

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/c/a/cac3a62f9c647e5cb396460f5e70b786a17a830a.png)

---

<div class="post-metadata">

**Author:** ![Jack\_Shirazi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jack_shirazi/32/91641_2.png) [@Jack\_Shirazi](https://discuss.elastic.co/u/Jack_Shirazi)\
**Post date:** [November 25, 2025, 12:23pm UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/19 "2025-11-25T12:23:52Z")

</div>

These are fallback names when the instrumentation can’t find a more useful name. Your application is now instrumented and producing transactions. One thing you should do is remove or redact your otel.exporter.otlp.headers line above, as this is a public forum

---

<div class="post-metadata">

**Author:** ![Aniket\_Pant](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Aniket\_Pant](https://discuss.elastic.co/u/Aniket_Pant)\
**Post date:** [November 26, 2025, 1:51pm UTC](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568/20 "2025-11-26T13:51:01Z")

</div>

I was using elastic cloud free trail. It is expired already.

As i mentioned earlier, in kibana \> observability\> Services. I am able to see app service name and infra metrics(cpu,memory,heap etc).

I have restarted the app and in tomcatstdout . I found below warnings.

```auto
2025-11-26 13:22:00,536 [elastic-apm-metadata-0] INFO co.elastic.apm.agent.impl.metadata.SystemInfo - Failed to execute command "powershell.exe -NoLogo -NonInteractive -NoProfile -ExecutionPolicy Bypass -Command [System.Net.Dns]::GetHostEntry($env:computerName).HostName" with exit code 0
2025-11-26 13:22:10,443 [elastic-apm-tracer-initializer] INFO co.elastic.apm.agent.impl.ElasticApmTracer - Delaying initialization of tracer for 5000ms
2025-11-26 13:22:15,448 [elastic-apm-tracer-initializer] INFO co.elastic.apm.agent.impl.ElasticApmTracer - end wait
2025-11-26 13:22:17,895 [elastic-apm-server-healthcheck] INFO co.elastic.apm.agent.report.ApmServerHealthChecker - Elastic APM server is available: { "build_date": "2025-02-06T20:29:22Z", "build_sha": "xxxxxxxxxxx", "publish_ready": true, "version": "8.16.4"}
2025-11-26 13:22:18,047 [elastic-apm-remote-config-poller] INFO co.elastic.apm.agent.configuration.ApmServerConfigurationSource - Received new configuration from APM Server: {capture_body=all, transaction_max_spans=500, transaction_sample_rate=1}
2025-11-26 13:22:18,454 [elastic-apm-tracer-initializer] INFO co.elastic.apm.agent.impl.ElasticApmTracer - Tracer switched to RUNNING state
2025-11-26 13:22:40,972 [main] INFO co.elastic.apm.agent.servlet.ServletVersionInstrumentation - Servlet container info = Apache Tomcat/9.0.105
2025-11-26 13:22:40,988 [main] INFO co.elastic.apm.agent.servlet.ServletVersionInstrumentation - Servlet container info = Apache Tomcat/9.0.105
2025-11-26 13:22:41,154 [main] WARN co.elastic.apm.agent.bci.bytebuddy.ErrorLoggingListener - org.apache.log4j.Category uses an unsupported class file version (pre Java 4)) and can't be instrumented. You may try setting the 'instrument_ancient_bytecode' config option to 'true', but notice that it may cause VerificationErrors or other issues.
2025-11-26 13:22:42,145 [main] WARN co.elastic.apm.agent.bci.bytebuddy.ErrorLoggingListener - org.apache.log4j.WriterAppender uses an unsupported class file version (pre Java 4)) and can't be instrumented. You may try setting the 'instrument_ancient_bytecode' config option to 'true', but notice that it may cause VerificationErrors or other issues.

```

**This app is COTS product and this app is used for scheduling the jobs.**

I wanted to know if i set `elastic.apm.instrument_ancient_bytecode=true` , will this work ? or it impact app performance ?

[Next page](https://discuss.elastic.co/t/enable-apm-for-springboot-running-on-windows/383568.md?page=2)
