10月 02, 2026 4:58:53 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-nio-127.0.0.1-auto-1"]
10月 02, 2026 4:58:53 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service [Tomcat]
10月 02, 2026 4:58:53 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet engine: [Apache Tomcat/10.1.46]
10月 02, 2026 4:58:53 下午 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring DispatcherServlet 'mvc'
10月 02, 2026 4:58:53 下午 org.springframework.web.servlet.FrameworkServlet initServletBean
信息: Initializing Servlet 'mvc'
10月 02, 2026 4:58:53 下午 org.hibernate.validator.internal.util.Version <clinit>
INFO: HV000001: Hibernate Validator 8.0.2.Final
10月 02, 2026 4:58:53 下午 org.springframework.web.servlet.FrameworkServlet initServletBean
信息: Completed initialization in 352 ms
10月 02, 2026 4:58:53 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-nio-127.0.0.1-auto-1-63660"]
ENV java=21.0.10 spring=6.2.11 tomcat=10.1.46.0 base=http://127.0.0.1:63660
TRACE filter REQUEST /number thread=http-nio-127.0.0.1-auto-1-exec-1
TRACE pre REQUEST /number context=true thread=http-nio-127.0.0.1-auto-1-exec-1
TRACE post REQUEST thread=http-nio-127.0.0.1-auto-1-exec-1
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-1
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-1
HTTP GET /number?n=4 status=200 content-type=application/json body={"n":4}
CHECK PASS 27 query converts to int
TRACE filter REQUEST /number thread=http-nio-127.0.0.1-auto-1-exec-2
TRACE pre REQUEST /number context=true thread=http-nio-127.0.0.1-auto-1-exec-2
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-2
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-2
HTTP GET /number status=400 content-type=application/json body={"code":"MissingServletRequestParameterException"}
CHECK PASS 27 missing required parameter
TRACE filter REQUEST /number thread=http-nio-127.0.0.1-auto-1-exec-3
TRACE pre REQUEST /number context=true thread=http-nio-127.0.0.1-auto-1-exec-3
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-3
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-3
HTTP GET /number?n= status=400 content-type=application/json body={"code":"MethodArgumentTypeMismatchException"}
CHECK PASS 27 empty primitive parameter
TRACE filter REQUEST /optional thread=http-nio-127.0.0.1-auto-1-exec-4
TRACE pre REQUEST /optional context=true thread=http-nio-127.0.0.1-auto-1-exec-4
TRACE post REQUEST thread=http-nio-127.0.0.1-auto-1-exec-4
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-4
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-4
HTTP GET /optional status=200 content-type=application/json body={"value":"<missing>"}
CHECK PASS 27 missing optional string is null
TRACE filter REQUEST /optional thread=http-nio-127.0.0.1-auto-1-exec-5
TRACE pre REQUEST /optional context=true thread=http-nio-127.0.0.1-auto-1-exec-5
TRACE post REQUEST thread=http-nio-127.0.0.1-auto-1-exec-5
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-5
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-5
HTTP GET /optional?n= status=200 content-type=application/json body={"value":""}
CHECK PASS 27 empty string differs from absent
TRACE filter REQUEST /repeated thread=http-nio-127.0.0.1-auto-1-exec-6
TRACE pre REQUEST /repeated context=true thread=http-nio-127.0.0.1-auto-1-exec-6
TRACE post REQUEST thread=http-nio-127.0.0.1-auto-1-exec-6
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-6
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-6
HTTP GET /repeated?tag=a&tag=b status=200 content-type=application/json body=["a","b"]
CHECK PASS 27 repeated parameter binds list in order
TRACE filter REQUEST /form thread=http-nio-127.0.0.1-auto-1-exec-7
TRACE pre REQUEST /form context=true thread=http-nio-127.0.0.1-auto-1-exec-7
TRACE post REQUEST thread=http-nio-127.0.0.1-auto-1-exec-7
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-7
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-7
HTTP POST /form status=200 content-type=application/json body={"quantity":2,"admin":false,"suppressed":["http2settings","extra","useragent","admin","contentlength","contenttype"],"errors":0,"name":"desk"}
CHECK PASS 27 form allowlist suppresses admin and unknown field
TRACE filter REQUEST /form thread=http-nio-127.0.0.1-auto-1-exec-8
TRACE pre REQUEST /form context=true thread=http-nio-127.0.0.1-auto-1-exec-8
TRACE post REQUEST thread=http-nio-127.0.0.1-auto-1-exec-8
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-8
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-8
HTTP POST /form status=200 content-type=application/json body={"quantity":0,"admin":false,"suppressed":["http2settings","useragent","contentlength","contenttype"],"errors":1,"name":"<missing>"}
CHECK PASS 27 adjacent BindingResult exposes conversion error
TRACE filter REQUEST /json thread=http-nio-127.0.0.1-auto-1-exec-9
TRACE pre REQUEST /json context=true thread=http-nio-127.0.0.1-auto-1-exec-9
TRACE post REQUEST thread=http-nio-127.0.0.1-auto-1-exec-9
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-9
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-9
HTTP POST /json status=200 content-type=application/json body={"name":"desk","quantity":2,"admin":true}
CHECK PASS 27 JSON converter ignores unknown field but bypasses form property allowlist
CHECK PASS producer executor terminated
10月 02, 2026 4:58:53 下午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["http-nio-127.0.0.1-auto-1-63660"]
10月 02, 2026 4:58:53 下午 org.apache.catalina.core.StandardService stopInternal
信息: Stopping service [Tomcat]
10月 02, 2026 4:58:53 下午 org.apache.catalina.core.ApplicationContext log
信息: Destroying Spring FrameworkServlet 'mvc'
10月 02, 2026 4:58:53 下午 org.apache.catalina.loader.WebappClassLoaderBase checkThreadLocalsForLeaks
警告: You need to add "--add-opens=java.base/java.lang=ALL-UNNAMED" to the JVM command line arguments to enable ThreadLocal memory leak detection. Alternatively, you can suppress this warning by disabling ThreadLocal memory leak detection.
10月 02, 2026 4:58:53 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesRmiTargets
警告: You need to add "--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED" to the JVM command line arguments to enable RMI Target memory leak detection. Alternatively, you can suppress this warning by disabling RMI Target memory leak detection.
10月 02, 2026 4:58:53 下午 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["http-nio-127.0.0.1-auto-1-63660"]
10月 02, 2026 4:58:53 下午 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["http-nio-127.0.0.1-auto-1-63660"]
CHECK PASS web application context closed
CHECK PASS MVC task executor terminated
CHECK PASS Tomcat listening port closed
CHAPTER 27 PASS checks=13
