修复Action history 为空的问题
Some checks failed
Mark & close stale issues / stale (push) Has been cancelled
Vulnerability Scan / trivy-scan (1.0) (push) Has been cancelled
Vulnerability Scan / trivy-scan (master) (push) Has been cancelled
CodeQL Advanced / Analyze (java-kotlin) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
Some checks failed
Mark & close stale issues / stale (push) Has been cancelled
Vulnerability Scan / trivy-scan (1.0) (push) Has been cancelled
Vulnerability Scan / trivy-scan (master) (push) Has been cancelled
CodeQL Advanced / Analyze (java-kotlin) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# set Java
|
||||
ARG JAVA_VERSION=21.0.11_10
|
||||
ARG JAVA_VERSION=21
|
||||
# extracts spring layers from the app jar (to optimize boot)
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine AS build
|
||||
|
||||
|
||||
5
docker/build/Dockerfile.bak
Normal file
5
docker/build/Dockerfile.bak
Normal file
@@ -0,0 +1,5 @@
|
||||
FROM eclipse-temurin:17-jre-alpine
|
||||
WORKDIR /app
|
||||
COPY app.jar app.jar
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT ["java","-jar","app.jar"]
|
||||
@@ -1,6 +1,6 @@
|
||||
# set Java
|
||||
ARG JAVA_VERSION=21.0.11_10
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine AS build
|
||||
ARG JAVA_VERSION=21
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-alpine AS build
|
||||
WORKDIR /app
|
||||
ARG HAWKBIT_APP=hawkbit-repository-jpa-init
|
||||
ARG HAWKBIT_VERSION=0-SNAPSHOT
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# set Java
|
||||
ARG JAVA_VERSION=21.0.11_10
|
||||
ARG JAVA_VERSION=21
|
||||
# extracts spring layers from the app jar (to optimize boot)
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine AS build
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-alpine AS build
|
||||
|
||||
ARG HAWKBIT_APP=hawkbit-update-server
|
||||
ARG HAWKBIT_VERSION=0-SNAPSHOT
|
||||
@@ -18,7 +18,7 @@ RUN set -x &&\
|
||||
java -Djarmode=tools -jar /${APP}-${VERSION}.jar extract --layers --launcher --destination . &&\
|
||||
rm /${APP}-${VERSION}.jar
|
||||
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-alpine
|
||||
ARG APP_DIR=/app
|
||||
WORKDIR ${APP_DIR}
|
||||
RUN addgroup -S hawkbit_group && adduser -D hawkbit -G hawkbit_group
|
||||
|
||||
@@ -14,7 +14,7 @@ services:
|
||||
# Postgres service
|
||||
# ---------------------
|
||||
postgres:
|
||||
image: "postgres:16.5"
|
||||
image: "postgres:16"
|
||||
ports:
|
||||
- "5432:5432"
|
||||
deploy:
|
||||
@@ -33,7 +33,7 @@ services:
|
||||
# RabbitMQ service
|
||||
# ---------------------
|
||||
rabbitmq:
|
||||
image: "rabbitmq:4-management-alpine"
|
||||
image: "rabbitmq:management-alpine"
|
||||
hostname: "rabbitmq"
|
||||
environment:
|
||||
RABBITMQ_DEFAULT_VHOST: "/"
|
||||
@@ -44,4 +44,4 @@ services:
|
||||
- "5672:5672"
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
condition: on-failure
|
||||
|
||||
11
docker/postgres/docker-compose-h2.yml
Normal file
11
docker/postgres/docker-compose-h2.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
services:
|
||||
hawkbit:
|
||||
image: hawkbit/hawkbit-update-server:latest
|
||||
ports:
|
||||
- "9099:8080"
|
||||
# 启用内置H2内存数据库,不依赖外部PG/RabbitMQ
|
||||
environment:
|
||||
SPRING_DATASOURCE_URL: jdbc:h2:mem:hawkbit;DB_CLOSE_DELAY=-1
|
||||
SPRING_JPA_HIBERNATE_DDL_AUTO: update
|
||||
SPRING_H2_CONSOLE_ENABLED: true
|
||||
restart: always
|
||||
@@ -18,7 +18,7 @@ services:
|
||||
# HawkBit DDI
|
||||
# ---------------------
|
||||
hawkbit-ddi:
|
||||
image: "hawkbit/hawkbit-ddi-server:latest"
|
||||
image: "ghcr.io/eclipse-hawkbit/hawkbit-ddi-server:latest"
|
||||
environment:
|
||||
- 'PROFILES=postgresql'
|
||||
- 'SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/hawkbit'
|
||||
@@ -42,7 +42,7 @@ services:
|
||||
# HawkBit DMF
|
||||
# ---------------------
|
||||
hawkbit-dmf:
|
||||
image: "hawkbit/hawkbit-dmf-server:latest"
|
||||
image: "ghcr.io/eclipse-hawkbit/hawkbit-dmf-server:latest"
|
||||
environment:
|
||||
- 'PROFILES=postgresql'
|
||||
- 'SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/hawkbit'
|
||||
@@ -62,7 +62,7 @@ services:
|
||||
# HawkBit MGMT
|
||||
# ---------------------
|
||||
hawkbit-mgmt:
|
||||
image: "hawkbit/hawkbit-mgmt-server:latest"
|
||||
image: "ghcr.io/eclipse-hawkbit/hawkbit-mgmt-server:latest"
|
||||
environment:
|
||||
- 'PROFILES=postgresql'
|
||||
- 'SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/hawkbit'
|
||||
|
||||
@@ -1,32 +1,33 @@
|
||||
#
|
||||
# Copyright (c) 2018 Bosch Software Innovations GmbH and others
|
||||
#
|
||||
# This program and the accompanying materials are made
|
||||
# available under the terms of the Eclipse Public License 2.0
|
||||
# which is available at https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
#
|
||||
version: '3.7'
|
||||
|
||||
include:
|
||||
- docker-compose-micro-services-postgres.yml
|
||||
|
||||
services:
|
||||
|
||||
# ---------------------
|
||||
# HawkBit UI
|
||||
# ---------------------
|
||||
hawkbit-ui:
|
||||
image: "hawkbit/hawkbit-ui:latest"
|
||||
postgres:
|
||||
image: postgres:16
|
||||
environment:
|
||||
- 'SPRING_APPLICATION_JSON={"hawkbit.server.mgmtUrl": "http://hawkbit-mgmt:8080"}'
|
||||
restart: always
|
||||
POSTGRES_DB: hawkbit
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
volumes:
|
||||
- pgdata:/var/lib/postgresql/data
|
||||
ports:
|
||||
- 8088:8088
|
||||
labels:
|
||||
NAME: "hawkbit-ui"
|
||||
- "5432:5432"
|
||||
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-management-alpine
|
||||
ports:
|
||||
- "15672:15672"
|
||||
- "5672:5672"
|
||||
|
||||
hawkbit:
|
||||
image: hawkbit/hawkbit-update-server:latest
|
||||
ports:
|
||||
- "9099:8080" # 对应你截图9091端口访问
|
||||
environment:
|
||||
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/hawkbit
|
||||
SPRING_DATASOURCE_USERNAME: postgres
|
||||
SPRING_DATASOURCE_PASSWORD: postgres
|
||||
SPRING_RABBITMQ_HOST: rabbitmq
|
||||
depends_on:
|
||||
- postgres
|
||||
- rabbitmq
|
||||
|
||||
volumes:
|
||||
artifactrepo:
|
||||
driver: local
|
||||
pgdata:
|
||||
|
||||
@@ -18,7 +18,7 @@ services:
|
||||
# HawkBit UI service
|
||||
# ---------------------
|
||||
hawkbit-ui:
|
||||
image: "hawkbit/hawkbit-ui:latest"
|
||||
image: "ghcr.io/eclipse-hawkbit/hawkbit-ui:lates"
|
||||
environment:
|
||||
- 'SPRING_APPLICATION_JSON={"hawkbit.server.mgmtUrl": "http://hawkbit:8080"}'
|
||||
restart: always
|
||||
|
||||
Binary file not shown.
3240
hawkbit-compose/logs/hawkbit-monolith.log
Normal file
3240
hawkbit-compose/logs/hawkbit-monolith.log
Normal file
File diff suppressed because it is too large
Load Diff
731
hawkbit-compose/logs/hawkbit-ui.log
Normal file
731
hawkbit-compose/logs/hawkbit-ui.log
Normal file
@@ -0,0 +1,731 @@
|
||||
______ _ _ _ _ ____ _ _
|
||||
| ____| | (_) | | | | | _ \(_) |
|
||||
| |__ ___| |_ _ __ ___ ___ | |__ __ ___ _| | _| |_) |_| |_
|
||||
| __| / __| | | '_ \/ __|/ _ \ | '_ \ / _` \ \ /\ / / |/ / _ <| | __|
|
||||
| |___| (__| | | |_) \__ \ __/ | | | | (_| |\ V V /| <| |_) | | |_
|
||||
|______\___|_|_| .__/|___/\___|_|_| |_|\__,_|_\_/\_/ |_|\_\____/|_|\__|
|
||||
| | | |_ _|
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| |__| |_| |_
|
||||
\____/|_____|
|
||||
|
||||
|
||||
Eclipse hawkBit UI (v0-SNAPSHOT)
|
||||
using Spring Boot (v4.1.0)
|
||||
|
||||
Go to https://hawkbit.eclipse.dev for more information.
|
||||
|
||||
2026-06-22T13:57:39.827+08:00 INFO 4724 --- [hawkbit-ui] [:] [ main] org.eclipse.hawkbit.ui.HawkbitUiApp : Starting HawkbitUiApp v0-SNAPSHOT using Java 21.0.11 with PID 4724 (/home/huaxu/hawkbit/hawkbit-ui/target/hawkbit-ui.jar started by huaxu in /home/huaxu/hawkbit/hawkbit-compose)
|
||||
2026-06-22T13:57:39.835+08:00 INFO 4724 --- [hawkbit-ui] [:] [ main] org.eclipse.hawkbit.ui.HawkbitUiApp : No active profile set, falling back to 1 default profile: "default"
|
||||
2026-06-22T13:57:42.868+08:00 INFO 4724 --- [hawkbit-ui] [:] [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=c4ec676e-69b2-3fd6-9610-ab9952076abc
|
||||
2026-06-22T13:57:43.953+08:00 INFO 4724 --- [hawkbit-ui] [:] [ main] o.s.boot.tomcat.TomcatWebServer : Tomcat initialized with port 9091 (http)
|
||||
2026-06-22T13:57:43.986+08:00 INFO 4724 --- [hawkbit-ui] [:] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
|
||||
2026-06-22T13:57:43.986+08:00 INFO 4724 --- [hawkbit-ui] [:] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/11.0.22]
|
||||
2026-06-22T13:57:44.073+08:00 INFO 4724 --- [hawkbit-ui] [:] [ main] b.w.c.s.WebApplicationContextInitializer : Root WebApplicationContext: initialization completed in 4072 ms
|
||||
2026-06-22T13:57:48.674+08:00 INFO 4724 --- [hawkbit-ui] [:] [ main] c.v.f.s.DefaultDeploymentConfiguration : Vaadin is running in production mode.
|
||||
2026-06-22T13:57:48.776+08:00 INFO 4724 --- [hawkbit-ui] [:] [ main] o.s.boot.tomcat.TomcatWebServer : Tomcat started on port 9091 (http) with context path '/'
|
||||
2026-06-22T13:57:48.815+08:00 INFO 4724 --- [hawkbit-ui] [:] [ main] org.eclipse.hawkbit.ui.HawkbitUiApp : Started HawkbitUiApp in 10.233 seconds (process running for 11.905)
|
||||
2026-06-22T14:00:37.878+08:00 INFO 4724 --- [hawkbit-ui] [:] [nio-9091-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2026-06-22T14:00:37.879+08:00 INFO 4724 --- [hawkbit-ui] [:] [nio-9091-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
|
||||
2026-06-22T14:00:37.881+08:00 INFO 4724 --- [hawkbit-ui] [:] [nio-9091-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms
|
||||
2026-06-22T14:00:43.280+08:00 ERROR 4724 --- [hawkbit-ui] [:] [nio-9091-exec-9] c.v.flow.router.InternalServerError : There was an exception while trying to navigate to 'targets'
|
||||
|
||||
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.eclipse.hawkbit.ui.view.TargetView': Failed to instantiate [org.eclipse.hawkbit.ui.view.TargetView]: Constructor threw exception
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:321) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:309) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1380) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1219) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:565) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:325) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at com.vaadin.flow.spring.SpringInstantiator.getOrCreate(SpringInstantiator.java:170) ~[vaadin-spring-25.1.10.jar!/:na]
|
||||
at com.vaadin.flow.di.Instantiator.createRouteTarget(Instantiator.java:170) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.lambda$getRouteTarget$1(AbstractNavigationStateRenderer.java:147) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.Optional.orElseGet(Optional.java:364) ~[na:na]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.getRouteTarget(AbstractNavigationStateRenderer.java:146) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.sendBeforeEnterEventAndPopulateChain(AbstractNavigationStateRenderer.java:698) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.createChainIfEmptyAndExecuteBeforeEnterNavigation(AbstractNavigationStateRenderer.java:679) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handleBeforeNavigationEvents(AbstractNavigationStateRenderer.java:388) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:226) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.internal.JavaScriptNavigationStateRenderer.handle(JavaScriptNavigationStateRenderer.java:78) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.Router.executeNavigation(Router.java:399) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.handleNavigation(UI.java:2081) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.renderViewForRoute(UI.java:2042) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.browserNavigate(UI.java:1927) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:242) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.handleDomEvent(ComponentEventBus.java:494) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.lambda$addDomTrigger$dd1b7957$1(ComponentEventBus.java:301) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.internal.nodefeature.ElementListenerMap.lambda$fireEvent$2(ElementListenerMap.java:501) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
|
||||
at com.vaadin.flow.internal.nodefeature.ElementListenerMap.fireEvent(ElementListenerMap.java:501) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.rpc.EventRpcHandler.handleNode(EventRpcHandler.java:62) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.rpc.AbstractRpcInvocationHandler.handle(AbstractRpcInvocationHandler.java:80) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocationData(ServerRpcHandler.java:619) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.lambda$handleInvocations$6(ServerRpcHandler.java:600) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:600) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:424) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:137) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:63) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1835) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:402) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:106) ~[vaadin-spring-25.1.10.jar!/:na]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:513) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:333) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:262) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:139) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:49) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:903) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:649) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$2(FilterChainProxy.java:235) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:376) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.eclipse.hawkbit.ui.security.UserDetailsSetter.doFilterInternal(UserDetailsSetter.java:73) ~[!/:0-SNAPSHOT]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:181) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:245) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:239) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:96) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:118) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:237) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:195) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.ServletRequestPathFilter.doFilter(ServletRequestPathFilter.java:52) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebSecurityConfiguration.java:317) ~[spring-security-config-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:355) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:272) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:199) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1272) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1801) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
|
||||
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.eclipse.hawkbit.ui.view.TargetView]: Constructor threw exception
|
||||
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:220) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:129) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
... 132 common frames omitted
|
||||
Caused by: feign.FeignException$InternalServerError: [500 ] during [GET] to [http://127.0.0.1:9090/rest/v1/targetfilters?offset=0&limit=30] [MgmtTargetFilterQueryRestApi#getFilters(String,int,int,String,String)]: [{"timestamp":"2026-06-22T06:00:43.260Z","status":500,"error":"Internal Server Error"}]
|
||||
at feign.FeignException.serverErrorStatus(FeignException.java:281) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.FeignException.errorStatus(FeignException.java:226) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.FeignException.errorStatus(FeignException.java:213) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:103) ~[feign-core-13.6.1.jar!/:na]
|
||||
at org.eclipse.hawkbit.ui.HawkbitUiApp.lambda$static$1(HawkbitUiApp.java:92) ~[!/:0-SNAPSHOT]
|
||||
at feign.InvocationContext.decodeError(InvocationContext.java:133) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.InvocationContext.proceed(InvocationContext.java:80) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.ResponseHandler.handleResponse(ResponseHandler.java:69) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:109) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:53) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:104) ~[feign-core-13.6.1.jar!/:na]
|
||||
at jdk.proxy2/jdk.proxy2.$Proxy102.getFilters(Unknown Source) ~[na:na]
|
||||
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
|
||||
at org.eclipse.hawkbit.sdk.HawkbitClient.lambda$wrapWithReachabilityFence$5(HawkbitClient.java:273) ~[hawkbit-sdk-commons-0-SNAPSHOT.jar!/:0-SNAPSHOT]
|
||||
at jdk.proxy2/jdk.proxy2.$Proxy102.getFilters(Unknown Source) ~[na:na]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView$RawFilter.listFilters(TargetView.java:259) ~[!/:0-SNAPSHOT]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView$RawFilter.<init>(TargetView.java:240) ~[!/:0-SNAPSHOT]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView.<init>(TargetView.java:117) ~[!/:0-SNAPSHOT]
|
||||
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[na:na]
|
||||
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[na:na]
|
||||
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[na:na]
|
||||
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:207) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
... 134 common frames omitted
|
||||
|
||||
2026-06-22T14:00:48.815+08:00 ERROR 4724 --- [hawkbit-ui] [:] [nio-9091-exec-6] c.v.flow.router.InternalServerError : There was an exception while trying to navigate to 'targets'
|
||||
|
||||
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.eclipse.hawkbit.ui.view.TargetView': Failed to instantiate [org.eclipse.hawkbit.ui.view.TargetView]: Constructor threw exception
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:321) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:309) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1380) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1219) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:565) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:325) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at com.vaadin.flow.spring.SpringInstantiator.getOrCreate(SpringInstantiator.java:170) ~[vaadin-spring-25.1.10.jar!/:na]
|
||||
at com.vaadin.flow.di.Instantiator.createRouteTarget(Instantiator.java:170) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.lambda$getRouteTarget$1(AbstractNavigationStateRenderer.java:147) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.Optional.orElseGet(Optional.java:364) ~[na:na]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.getRouteTarget(AbstractNavigationStateRenderer.java:146) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.sendBeforeEnterEventAndPopulateChain(AbstractNavigationStateRenderer.java:698) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.createChainIfEmptyAndExecuteBeforeEnterNavigation(AbstractNavigationStateRenderer.java:679) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handleBeforeNavigationEvents(AbstractNavigationStateRenderer.java:388) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:226) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.internal.JavaScriptNavigationStateRenderer.handle(JavaScriptNavigationStateRenderer.java:78) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.Router.executeNavigation(Router.java:399) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.handleNavigation(UI.java:2081) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:1268) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:1223) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:1034) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:944) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at org.eclipse.hawkbit.ui.MainLayout.showRouterLayoutContent(MainLayout.java:93) ~[!/:0-SNAPSHOT]
|
||||
at com.vaadin.flow.component.internal.UIInternals.showRouteTarget(UIInternals.java:903) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:247) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.internal.JavaScriptNavigationStateRenderer.handle(JavaScriptNavigationStateRenderer.java:78) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.Router.executeNavigation(Router.java:399) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.handleNavigation(UI.java:2081) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.renderViewForRoute(UI.java:2042) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.browserNavigate(UI.java:1927) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:242) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.handleDomEvent(ComponentEventBus.java:494) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.lambda$addDomTrigger$dd1b7957$1(ComponentEventBus.java:301) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.internal.nodefeature.ElementListenerMap.lambda$fireEvent$2(ElementListenerMap.java:501) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
|
||||
at com.vaadin.flow.internal.nodefeature.ElementListenerMap.fireEvent(ElementListenerMap.java:501) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.rpc.EventRpcHandler.handleNode(EventRpcHandler.java:62) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.rpc.AbstractRpcInvocationHandler.handle(AbstractRpcInvocationHandler.java:80) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocationData(ServerRpcHandler.java:619) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.lambda$handleInvocations$6(ServerRpcHandler.java:600) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:600) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:424) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:137) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:63) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1835) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:402) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:106) ~[vaadin-spring-25.1.10.jar!/:na]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:513) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:333) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:262) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:139) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:49) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:903) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:649) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$2(FilterChainProxy.java:235) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:376) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.eclipse.hawkbit.ui.security.UserDetailsSetter.doFilterInternal(UserDetailsSetter.java:73) ~[!/:0-SNAPSHOT]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:181) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:245) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:239) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:96) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:118) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:237) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:195) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.ServletRequestPathFilter.doFilter(ServletRequestPathFilter.java:52) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebSecurityConfiguration.java:317) ~[spring-security-config-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:355) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:272) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:199) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1272) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1801) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
|
||||
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.eclipse.hawkbit.ui.view.TargetView]: Constructor threw exception
|
||||
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:220) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:129) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
... 142 common frames omitted
|
||||
Caused by: feign.FeignException$InternalServerError: [500 ] during [GET] to [http://127.0.0.1:9090/rest/v1/targetfilters?offset=0&limit=30] [MgmtTargetFilterQueryRestApi#getFilters(String,int,int,String,String)]: [{"timestamp":"2026-06-22T06:00:48.808Z","status":500,"error":"Internal Server Error"}]
|
||||
at feign.FeignException.serverErrorStatus(FeignException.java:281) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.FeignException.errorStatus(FeignException.java:226) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.FeignException.errorStatus(FeignException.java:213) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:103) ~[feign-core-13.6.1.jar!/:na]
|
||||
at org.eclipse.hawkbit.ui.HawkbitUiApp.lambda$static$1(HawkbitUiApp.java:92) ~[!/:0-SNAPSHOT]
|
||||
at feign.InvocationContext.decodeError(InvocationContext.java:133) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.InvocationContext.proceed(InvocationContext.java:80) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.ResponseHandler.handleResponse(ResponseHandler.java:69) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:109) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:53) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:104) ~[feign-core-13.6.1.jar!/:na]
|
||||
at jdk.proxy2/jdk.proxy2.$Proxy102.getFilters(Unknown Source) ~[na:na]
|
||||
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
|
||||
at org.eclipse.hawkbit.sdk.HawkbitClient.lambda$wrapWithReachabilityFence$5(HawkbitClient.java:273) ~[hawkbit-sdk-commons-0-SNAPSHOT.jar!/:0-SNAPSHOT]
|
||||
at jdk.proxy2/jdk.proxy2.$Proxy102.getFilters(Unknown Source) ~[na:na]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView$RawFilter.listFilters(TargetView.java:259) ~[!/:0-SNAPSHOT]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView$RawFilter.<init>(TargetView.java:240) ~[!/:0-SNAPSHOT]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView.<init>(TargetView.java:117) ~[!/:0-SNAPSHOT]
|
||||
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[na:na]
|
||||
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[na:na]
|
||||
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[na:na]
|
||||
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:207) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
... 144 common frames omitted
|
||||
|
||||
2026-06-22T14:01:50.056+08:00 ERROR 4724 --- [hawkbit-ui] [:] [nio-9091-exec-6] c.v.flow.router.InternalServerError : There was an exception while trying to navigate to 'targets'
|
||||
|
||||
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.eclipse.hawkbit.ui.view.TargetView': Failed to instantiate [org.eclipse.hawkbit.ui.view.TargetView]: Constructor threw exception
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:321) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:309) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1380) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1219) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:565) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:325) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at com.vaadin.flow.spring.SpringInstantiator.getOrCreate(SpringInstantiator.java:170) ~[vaadin-spring-25.1.10.jar!/:na]
|
||||
at com.vaadin.flow.di.Instantiator.createRouteTarget(Instantiator.java:170) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.lambda$getRouteTarget$1(AbstractNavigationStateRenderer.java:147) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.Optional.orElseGet(Optional.java:364) ~[na:na]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.getRouteTarget(AbstractNavigationStateRenderer.java:146) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.sendBeforeEnterEventAndPopulateChain(AbstractNavigationStateRenderer.java:698) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.createChainIfEmptyAndExecuteBeforeEnterNavigation(AbstractNavigationStateRenderer.java:679) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handleBeforeNavigationEvents(AbstractNavigationStateRenderer.java:388) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:226) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.internal.JavaScriptNavigationStateRenderer.handle(JavaScriptNavigationStateRenderer.java:78) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.Router.executeNavigation(Router.java:399) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.handleNavigation(UI.java:2081) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:1268) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:1223) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:1034) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:944) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at org.eclipse.hawkbit.ui.MainLayout.showRouterLayoutContent(MainLayout.java:93) ~[!/:0-SNAPSHOT]
|
||||
at com.vaadin.flow.component.internal.UIInternals.showRouteTarget(UIInternals.java:903) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:247) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.internal.JavaScriptNavigationStateRenderer.handle(JavaScriptNavigationStateRenderer.java:78) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.Router.executeNavigation(Router.java:399) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.handleNavigation(UI.java:2081) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.renderViewForRoute(UI.java:2042) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.browserNavigate(UI.java:1927) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:242) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.handleDomEvent(ComponentEventBus.java:494) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.lambda$addDomTrigger$dd1b7957$1(ComponentEventBus.java:301) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.internal.nodefeature.ElementListenerMap.lambda$fireEvent$2(ElementListenerMap.java:501) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
|
||||
at com.vaadin.flow.internal.nodefeature.ElementListenerMap.fireEvent(ElementListenerMap.java:501) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.rpc.EventRpcHandler.handleNode(EventRpcHandler.java:62) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.rpc.AbstractRpcInvocationHandler.handle(AbstractRpcInvocationHandler.java:80) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocationData(ServerRpcHandler.java:619) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.lambda$handleInvocations$6(ServerRpcHandler.java:600) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:600) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:424) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:137) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:63) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1835) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:402) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:106) ~[vaadin-spring-25.1.10.jar!/:na]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:513) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:333) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:262) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:139) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:49) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:903) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:649) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$2(FilterChainProxy.java:235) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:376) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.eclipse.hawkbit.ui.security.UserDetailsSetter.doFilterInternal(UserDetailsSetter.java:73) ~[!/:0-SNAPSHOT]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:181) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:245) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:239) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:96) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:118) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:237) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:195) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.ServletRequestPathFilter.doFilter(ServletRequestPathFilter.java:52) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebSecurityConfiguration.java:317) ~[spring-security-config-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:355) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:272) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:199) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1272) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1801) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
|
||||
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.eclipse.hawkbit.ui.view.TargetView]: Constructor threw exception
|
||||
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:220) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:129) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
... 142 common frames omitted
|
||||
Caused by: feign.FeignException$InternalServerError: [500 ] during [GET] to [http://127.0.0.1:9090/rest/v1/targetfilters?offset=0&limit=30] [MgmtTargetFilterQueryRestApi#getFilters(String,int,int,String,String)]: [{"timestamp":"2026-06-22T06:01:50.045Z","status":500,"error":"Internal Server Error"}]
|
||||
at feign.FeignException.serverErrorStatus(FeignException.java:281) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.FeignException.errorStatus(FeignException.java:226) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.FeignException.errorStatus(FeignException.java:213) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:103) ~[feign-core-13.6.1.jar!/:na]
|
||||
at org.eclipse.hawkbit.ui.HawkbitUiApp.lambda$static$1(HawkbitUiApp.java:92) ~[!/:0-SNAPSHOT]
|
||||
at feign.InvocationContext.decodeError(InvocationContext.java:133) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.InvocationContext.proceed(InvocationContext.java:80) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.ResponseHandler.handleResponse(ResponseHandler.java:69) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:109) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:53) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:104) ~[feign-core-13.6.1.jar!/:na]
|
||||
at jdk.proxy2/jdk.proxy2.$Proxy102.getFilters(Unknown Source) ~[na:na]
|
||||
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
|
||||
at org.eclipse.hawkbit.sdk.HawkbitClient.lambda$wrapWithReachabilityFence$5(HawkbitClient.java:273) ~[hawkbit-sdk-commons-0-SNAPSHOT.jar!/:0-SNAPSHOT]
|
||||
at jdk.proxy2/jdk.proxy2.$Proxy102.getFilters(Unknown Source) ~[na:na]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView$RawFilter.listFilters(TargetView.java:259) ~[!/:0-SNAPSHOT]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView$RawFilter.<init>(TargetView.java:240) ~[!/:0-SNAPSHOT]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView.<init>(TargetView.java:117) ~[!/:0-SNAPSHOT]
|
||||
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[na:na]
|
||||
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[na:na]
|
||||
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[na:na]
|
||||
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:207) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
... 144 common frames omitted
|
||||
|
||||
2026-06-22T14:01:58.509+08:00 ERROR 4724 --- [hawkbit-ui] [:] [io-9091-exec-10] c.v.flow.router.InternalServerError : There was an exception while trying to navigate to 'targets'
|
||||
|
||||
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.eclipse.hawkbit.ui.view.TargetView': Failed to instantiate [org.eclipse.hawkbit.ui.view.TargetView]: Constructor threw exception
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:321) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:309) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1380) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1219) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:565) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:325) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at com.vaadin.flow.spring.SpringInstantiator.getOrCreate(SpringInstantiator.java:170) ~[vaadin-spring-25.1.10.jar!/:na]
|
||||
at com.vaadin.flow.di.Instantiator.createRouteTarget(Instantiator.java:170) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.lambda$getRouteTarget$1(AbstractNavigationStateRenderer.java:147) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.Optional.orElseGet(Optional.java:364) ~[na:na]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.getRouteTarget(AbstractNavigationStateRenderer.java:146) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.sendBeforeEnterEventAndPopulateChain(AbstractNavigationStateRenderer.java:698) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.createChainIfEmptyAndExecuteBeforeEnterNavigation(AbstractNavigationStateRenderer.java:679) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handleBeforeNavigationEvents(AbstractNavigationStateRenderer.java:388) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:226) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.internal.JavaScriptNavigationStateRenderer.handle(JavaScriptNavigationStateRenderer.java:78) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.Router.executeNavigation(Router.java:399) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.handleNavigation(UI.java:2081) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:1268) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:1223) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:1034) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.navigate(UI.java:944) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at org.eclipse.hawkbit.ui.MainLayout.showRouterLayoutContent(MainLayout.java:93) ~[!/:0-SNAPSHOT]
|
||||
at com.vaadin.flow.component.internal.UIInternals.showRouteTarget(UIInternals.java:903) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:247) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.internal.JavaScriptNavigationStateRenderer.handle(JavaScriptNavigationStateRenderer.java:78) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.router.Router.executeNavigation(Router.java:399) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.handleNavigation(UI.java:2081) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.renderViewForRoute(UI.java:2042) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.UI.browserNavigate(UI.java:1927) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:242) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.handleDomEvent(ComponentEventBus.java:494) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.component.ComponentEventBus.lambda$addDomTrigger$dd1b7957$1(ComponentEventBus.java:301) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.internal.nodefeature.ElementListenerMap.lambda$fireEvent$2(ElementListenerMap.java:501) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
|
||||
at com.vaadin.flow.internal.nodefeature.ElementListenerMap.fireEvent(ElementListenerMap.java:501) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.rpc.EventRpcHandler.handleNode(EventRpcHandler.java:62) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.rpc.AbstractRpcInvocationHandler.handle(AbstractRpcInvocationHandler.java:80) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocationData(ServerRpcHandler.java:619) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.lambda$handleInvocations$6(ServerRpcHandler.java:600) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:600) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:424) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:137) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:63) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1835) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:402) ~[flow-server-25.1.10.jar!/:25.1.10]
|
||||
at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:106) ~[vaadin-spring-25.1.10.jar!/:na]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:513) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:333) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:262) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:139) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:49) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:903) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:649) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874) ~[spring-webmvc-7.0.8.jar!/:7.0.8]
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$2(FilterChainProxy.java:235) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:376) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.eclipse.hawkbit.ui.security.UserDetailsSetter.doFilterInternal(UserDetailsSetter.java:73) ~[!/:0-SNAPSHOT]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:181) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:245) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:239) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:96) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:118) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:237) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:195) ~[spring-security-web-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.ServletRequestPathFilter.doFilter(ServletRequestPathFilter.java:52) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebSecurityConfiguration.java:317) ~[spring-security-config-7.1.0.jar!/:7.1.0]
|
||||
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:355) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:272) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:199) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.8.jar!/:7.0.8]
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1272) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1801) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57) ~[tomcat-embed-core-11.0.22.jar!/:na]
|
||||
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
|
||||
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.eclipse.hawkbit.ui.view.TargetView]: Constructor threw exception
|
||||
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:220) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:129) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
... 142 common frames omitted
|
||||
Caused by: feign.FeignException$InternalServerError: [500 ] during [GET] to [http://127.0.0.1:9090/rest/v1/targetfilters?offset=0&limit=30] [MgmtTargetFilterQueryRestApi#getFilters(String,int,int,String,String)]: [{"timestamp":"2026-06-22T06:01:58.502Z","status":500,"error":"Internal Server Error"}]
|
||||
at feign.FeignException.serverErrorStatus(FeignException.java:281) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.FeignException.errorStatus(FeignException.java:226) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.FeignException.errorStatus(FeignException.java:213) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:103) ~[feign-core-13.6.1.jar!/:na]
|
||||
at org.eclipse.hawkbit.ui.HawkbitUiApp.lambda$static$1(HawkbitUiApp.java:92) ~[!/:0-SNAPSHOT]
|
||||
at feign.InvocationContext.decodeError(InvocationContext.java:133) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.InvocationContext.proceed(InvocationContext.java:80) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.ResponseHandler.handleResponse(ResponseHandler.java:69) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:109) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:53) ~[feign-core-13.6.1.jar!/:na]
|
||||
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:104) ~[feign-core-13.6.1.jar!/:na]
|
||||
at jdk.proxy2/jdk.proxy2.$Proxy102.getFilters(Unknown Source) ~[na:na]
|
||||
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
|
||||
at org.eclipse.hawkbit.sdk.HawkbitClient.lambda$wrapWithReachabilityFence$5(HawkbitClient.java:273) ~[hawkbit-sdk-commons-0-SNAPSHOT.jar!/:0-SNAPSHOT]
|
||||
at jdk.proxy2/jdk.proxy2.$Proxy102.getFilters(Unknown Source) ~[na:na]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView$RawFilter.listFilters(TargetView.java:259) ~[!/:0-SNAPSHOT]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView$RawFilter.<init>(TargetView.java:240) ~[!/:0-SNAPSHOT]
|
||||
at org.eclipse.hawkbit.ui.view.TargetView.<init>(TargetView.java:117) ~[!/:0-SNAPSHOT]
|
||||
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[na:na]
|
||||
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[na:na]
|
||||
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[na:na]
|
||||
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:207) ~[spring-beans-7.0.8.jar!/:7.0.8]
|
||||
... 144 common frames omitted
|
||||
|
||||
2026-06-22T14:02:21.841+08:00 INFO 4724 --- [hawkbit-ui] [:] [ionShutdownHook] o.s.boot.tomcat.GracefulShutdown : Commencing graceful shutdown. Waiting for active requests to complete
|
||||
2026-06-22T14:02:21.843+08:00 INFO 4724 --- [hawkbit-ui] [:] [tomcat-shutdown] o.s.boot.tomcat.GracefulShutdown : Graceful shutdown complete
|
||||
407
hawkbit-compose/start-hawkbit.sh
Executable file
407
hawkbit-compose/start-hawkbit.sh
Executable file
@@ -0,0 +1,407 @@
|
||||
#!/bin/bash
|
||||
# ═══════════════════════════════════════════════════════════════════════════════
|
||||
# Hawkbit Monolith + UI 本地启动脚本(替代 docker-compose)
|
||||
# ═══════════════════════════════════════════════════════════════════════════════
|
||||
#
|
||||
# 两种模式:
|
||||
# h2 H2 内嵌数据库(零依赖,开发测试用)
|
||||
# postgres PostgreSQL + RabbitMQ(模拟生产环境)
|
||||
#
|
||||
# 用法:
|
||||
# ./start-hawkbit.sh h2 # H2 模式,端口 9090/9091
|
||||
# ./start-hawkbit.sh postgres # PostgreSQL 模式,端口 9090/9091
|
||||
# ./start-hawkbit.sh stop # 停止所有
|
||||
# ./start-hawkbit.sh status # 查看状态
|
||||
# ./start-hawkbit.sh dbinit # 仅执行数据库初始化(postgres 模式)
|
||||
# ./start-hawkbit.sh help # 帮助
|
||||
#
|
||||
# 对应 docker-compose 文件:
|
||||
# h2 → docker-compose-monolith-with-ui-postgres.yml (但用 H2)
|
||||
# postgres → docker-compose-monolith-dbinit-with-ui-postgres.yml
|
||||
# ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
HAWKBIT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
LOG_DIR="$SCRIPT_DIR/logs"
|
||||
PID_DIR="$SCRIPT_DIR/pid"
|
||||
|
||||
# ── 配置 ─────────────────────────────────────────────────────────────────────
|
||||
MONOLITH_JAR="$HAWKBIT_ROOT/hawkbit-monolith/hawkbit-update-server/target/hawkbit-update-server-0-SNAPSHOT.jar"
|
||||
UI_JAR="$HAWKBIT_ROOT/hawkbit-ui/target/hawkbit-ui.jar"
|
||||
DBINIT_JAR="$HOME/.m2/repository/org/eclipse/hawkbit/hawkbit-repository-jpa-init/0-SNAPSHOT/hawkbit-repository-jpa-init-0-SNAPSHOT.jar"
|
||||
|
||||
# 端口
|
||||
MONOLITH_PORT=9090
|
||||
UI_PORT=9091
|
||||
|
||||
# PostgreSQL 配置(postgres 模式)
|
||||
PG_HOST=localhost
|
||||
PG_PORT=5432
|
||||
PG_DB=hawkbit
|
||||
PG_USER=postgres
|
||||
PG_PASSWORD=hawkbit
|
||||
|
||||
# RabbitMQ 配置(postgres 模式)
|
||||
RABBIT_HOST=localhost
|
||||
RABBIT_PORT=5672
|
||||
|
||||
# H2 配置
|
||||
H2_DB_DIR="$SCRIPT_DIR/h2data"
|
||||
|
||||
# JVM 参数
|
||||
MONOLITH_XMS=512m
|
||||
MONOLITH_XMX=1024m
|
||||
UI_XMS=256m
|
||||
UI_XMX=512m
|
||||
|
||||
# ── 颜色 ─────────────────────────────────────────────────────────────────────
|
||||
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; BLUE='\033[0;34m'; NC='\033[0m'
|
||||
info() { echo -e "${GREEN}[INFO]${NC} $*"; }
|
||||
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
|
||||
error() { echo -e "${RED}[ERROR]${NC} $*"; }
|
||||
step() { echo -e "\n${BLUE}═══ $* ═══${NC}"; }
|
||||
|
||||
# ── 初始化 ───────────────────────────────────────────────────────────────────
|
||||
init() {
|
||||
mkdir -p "$LOG_DIR" "$PID_DIR"
|
||||
}
|
||||
|
||||
# ── 清理 ─────────────────────────────────────────────────────────────────────
|
||||
cleanup_pid() {
|
||||
local pid_file="$1"
|
||||
local name="$2"
|
||||
if [ -f "$pid_file" ]; then
|
||||
local pid=$(cat "$pid_file")
|
||||
if kill -0 "$pid" 2>/dev/null; then
|
||||
info "停止 $name (PID: $pid)"
|
||||
kill "$pid" 2>/dev/null || true
|
||||
sleep 2
|
||||
kill -9 "$pid" 2>/dev/null || true
|
||||
fi
|
||||
rm -f "$pid_file"
|
||||
fi
|
||||
}
|
||||
|
||||
# ── 停止 ─────────────────────────────────────────────────────────────────────
|
||||
do_stop() {
|
||||
step "停止 Hawkbit 服务"
|
||||
|
||||
cleanup_pid "$PID_DIR/hawkbit-monolith.pid" "hawkbit-monolith"
|
||||
cleanup_pid "$PID_DIR/hawkbit-ui.pid" "hawkbit-ui"
|
||||
|
||||
if [ -f "$PID_DIR/postgres.pid" ]; then
|
||||
local pg_pid=$(cat "$PID_DIR/postgres.pid")
|
||||
if kill -0 "$pg_pid" 2>/dev/null; then
|
||||
info "停止 PostgreSQL (PID: $pg_pid)"
|
||||
pg_ctl -D "$SCRIPT_DIR/pgdata" stop 2>/dev/null || kill "$pg_pid"
|
||||
fi
|
||||
rm -f "$PID_DIR/postgres.pid"
|
||||
fi
|
||||
|
||||
if [ -f "$PID_DIR/rabbitmq.pid" ]; then
|
||||
local rb_pid=$(cat "$PID_DIR/rabbitmq.pid")
|
||||
if kill -0 "$rb_pid" 2>/dev/null; then
|
||||
info "停止 RabbitMQ (PID: $rb_pid)"
|
||||
kill "$rb_pid" 2>/dev/null || true
|
||||
fi
|
||||
rm -f "$PID_DIR/rabbitmq.pid"
|
||||
fi
|
||||
|
||||
info "全部已停止"
|
||||
}
|
||||
|
||||
# ── 状态 ─────────────────────────────────────────────────────────────────────
|
||||
do_status() {
|
||||
echo "Hawkbit 服务状态:"
|
||||
echo "─────────────────"
|
||||
|
||||
for svc in "hawkbit-monolith:${MONOLITH_PORT}:$PID_DIR/hawkbit-monolith.pid" \
|
||||
"hawkbit-ui:${UI_PORT}:$PID_DIR/hawkbit-ui.pid"; do
|
||||
IFS=':' read -r name port pid_file <<< "$svc"
|
||||
if [ -f "$pid_file" ] && kill -0 "$(cat "$pid_file")" 2>/dev/null; then
|
||||
echo -e " ${GREEN}●${NC} $name (port $port, PID $(cat "$pid_file"))"
|
||||
else
|
||||
echo -e " ${RED}○${NC} $name (port $port)"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
if [ -f "$PID_DIR/postgres.pid" ] && kill -0 "$(cat "$PID_DIR/postgres.pid")" 2>/dev/null; then
|
||||
echo -e " ${GREEN}●${NC} PostgreSQL (port $PG_PORT)"
|
||||
else
|
||||
echo -e " ${YELLOW}○${NC} PostgreSQL (not managed by this script)"
|
||||
fi
|
||||
}
|
||||
|
||||
# ── 等待端口 ─────────────────────────────────────────────────────────────────
|
||||
wait_for_port() {
|
||||
local host=$1 port=$2 timeout=${3:-30} label=${4:-"$host:$port"}
|
||||
local waited=0
|
||||
while ! (echo >"/dev/tcp/$host/$port") 2>/dev/null; do
|
||||
sleep 1
|
||||
waited=$((waited + 1))
|
||||
if [ $waited -ge $timeout ]; then
|
||||
error "$label 启动超时(${timeout}s)"
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
info "$label 就绪"
|
||||
}
|
||||
|
||||
# ── H2 模式 ──────────────────────────────────────────────────────────────────
|
||||
start_h2() {
|
||||
step "H2 模式启动"
|
||||
|
||||
if [ -f "$PID_DIR/hawkbit-monolith.pid" ] && kill -0 "$(cat "$PID_DIR/hawkbit-monolith.pid")" 2>/dev/null; then
|
||||
warn "hawkbit-monolith 已在运行"
|
||||
else
|
||||
mkdir -p "$H2_DB_DIR"
|
||||
|
||||
info "启动 hawkbit-update-server (H2, 端口 $MONOLITH_PORT)..."
|
||||
nohup java \
|
||||
-Xms${MONOLITH_XMS} -Xmx${MONOLITH_XMX} \
|
||||
-jar "$MONOLITH_JAR" \
|
||||
--server.port=$MONOLITH_PORT \
|
||||
--hawkbit.dmf.rabbitmq.enabled=false \
|
||||
--hawkbit.server.ddi.security.authentication.anonymous.enabled=true \
|
||||
--hawkbit.server.ui.demo.user=admin \
|
||||
--hawkbit.server.ui.demo.password=admin \
|
||||
--spring.datasource.url="jdbc:h2:file:$H2_DB_DIR/hawkbit;DB_CLOSE_DELAY=-1" \
|
||||
>> "$LOG_DIR/hawkbit-monolith.log" 2>&1 &
|
||||
echo $! > "$PID_DIR/hawkbit-monolith.pid"
|
||||
fi
|
||||
|
||||
start_ui
|
||||
}
|
||||
|
||||
# ── PostgreSQL 模式 ──────────────────────────────────────────────────────────
|
||||
start_postgres() {
|
||||
step "PostgreSQL 模式启动"
|
||||
|
||||
# ── 检查 PostgreSQL ────────────────────────────────────────────────
|
||||
if ! command -v pg_isready &>/dev/null; then
|
||||
error "PostgreSQL 未安装。请先执行: sudo apt install postgresql-16 rabbitmq-server"
|
||||
echo ""
|
||||
echo "或者用 H2 模式: $0 h2"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 确保 PostgreSQL 运行
|
||||
if ! pg_isready -h $PG_HOST -p $PG_PORT &>/dev/null; then
|
||||
info "启动 PostgreSQL..."
|
||||
sudo pg_ctlcluster 16 main start 2>/dev/null || \
|
||||
sudo service postgresql start 2>/dev/null || {
|
||||
error "无法启动 PostgreSQL"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
info "PostgreSQL 已就绪"
|
||||
|
||||
# ── 创建数据库和用户 ──────────────────────────────────────────────
|
||||
sudo -u postgres psql -tc "SELECT 1 FROM pg_roles WHERE rolname='$PG_USER'" 2>/dev/null | grep -q 1 || {
|
||||
info "创建数据库用户 $PG_USER"
|
||||
sudo -u postgres psql -c "CREATE USER $PG_USER WITH PASSWORD '$PG_PASSWORD';" 2>/dev/null
|
||||
sudo -u postgres psql -c "ALTER USER $PG_USER CREATEDB;" 2>/dev/null
|
||||
}
|
||||
|
||||
sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname='$PG_DB'" 2>/dev/null | grep -q 1 || {
|
||||
info "创建数据库 $PG_DB"
|
||||
sudo -u postgres psql -c "CREATE DATABASE $PG_DB OWNER $PG_USER;" 2>/dev/null
|
||||
}
|
||||
|
||||
# ── RabbitMQ ───────────────────────────────────────────────────────
|
||||
if ! rabbitmqctl status &>/dev/null 2>&1; then
|
||||
info "启动 RabbitMQ..."
|
||||
sudo service rabbitmq-server start 2>/dev/null || {
|
||||
warn "RabbitMQ 启动失败,禁用 DMF"
|
||||
RABBIT_DISABLED=true
|
||||
}
|
||||
fi
|
||||
[ -z "$RABBIT_DISABLED" ] && info "RabbitMQ 已就绪"
|
||||
|
||||
# ── DB Init (Flyway 迁移) ──────────────────────────────────────────
|
||||
if [ -f "$DBINIT_JAR" ]; then
|
||||
step "数据库初始化 (Flyway 迁移)"
|
||||
info "执行 Hawkbit DB Init..."
|
||||
java \
|
||||
-Xms256m -Xmx512m \
|
||||
-classpath "$DBINIT_JAR" \
|
||||
-Dspring.datasource.url="jdbc:postgresql://${PG_HOST}:${PG_PORT}/${PG_DB}" \
|
||||
-Dspring.datasource.username="$PG_USER" \
|
||||
-Dspring.datasource.password="$PG_PASSWORD" \
|
||||
org.eclipse.hawkbit.repository.jpa.init.HawkbitFlywayDbInit \
|
||||
migrate 2>&1 | tee "$LOG_DIR/dbinit.log"
|
||||
|
||||
if [ ${PIPESTATUS[0]} -ne 0 ]; then
|
||||
error "DB 初始化失败,查看日志: $LOG_DIR/dbinit.log"
|
||||
exit 1
|
||||
fi
|
||||
info "DB 初始化完成"
|
||||
else
|
||||
warn "DB Init JAR 未找到: $DBINIT_JAR"
|
||||
warn "跳过 DB 初始化,由 Monolith 内嵌 Flyway 执行"
|
||||
fi
|
||||
|
||||
# ── 启动 Monolith ─────────────────────────────────────────────────
|
||||
info "启动 hawkbit-update-server (PostgreSQL, 端口 $MONOLITH_PORT)..."
|
||||
|
||||
local rabbit_args=""
|
||||
if [ "$RABBIT_DISABLED" = true ]; then
|
||||
rabbit_args="--hawkbit.dmf.rabbitmq.enabled=false"
|
||||
else
|
||||
rabbit_args="--spring.rabbitmq.host=$RABBIT_HOST"
|
||||
fi
|
||||
|
||||
nohup java \
|
||||
-Xms${MONOLITH_XMS} -Xmx${MONOLITH_XMX} \
|
||||
-Dspring.profiles.active=postgresql \
|
||||
-jar "$MONOLITH_JAR" \
|
||||
--server.port=$MONOLITH_PORT \
|
||||
--spring.datasource.url="jdbc:postgresql://${PG_HOST}:${PG_PORT}/${PG_DB}" \
|
||||
--spring.datasource.username="$PG_USER" \
|
||||
--spring.datasource.password="$PG_PASSWORD" \
|
||||
$rabbit_args \
|
||||
--hawkbit.server.ddi.security.authentication.anonymous.enabled=true \
|
||||
--hawkbit.server.ui.demo.user=admin \
|
||||
--hawkbit.server.ui.demo.password=admin \
|
||||
>> "$LOG_DIR/hawkbit-monolith.log" 2>&1 &
|
||||
echo $! > "$PID_DIR/hawkbit-monolith.pid"
|
||||
|
||||
wait_for_port localhost $MONOLITH_PORT 60 "hawkbit-monolith"
|
||||
|
||||
start_ui
|
||||
}
|
||||
|
||||
# ── 启动 UI ──────────────────────────────────────────────────────────────────
|
||||
start_ui() {
|
||||
if [ -f "$PID_DIR/hawkbit-ui.pid" ] && kill -0 "$(cat "$PID_DIR/hawkbit-ui.pid")" 2>/dev/null; then
|
||||
warn "hawkbit-ui 已在运行"
|
||||
else
|
||||
info "启动 hawkbit-ui (端口 $UI_PORT)..."
|
||||
nohup java \
|
||||
-Xms${UI_XMS} -Xmx${UI_XMX} \
|
||||
-jar "$UI_JAR" \
|
||||
--server.port=$UI_PORT \
|
||||
--hawkbit.server.mgmturl="http://127.0.0.1:${MONOLITH_PORT}" \
|
||||
>> "$LOG_DIR/hawkbit-ui.log" 2>&1 &
|
||||
echo $! > "$PID_DIR/hawkbit-ui.pid"
|
||||
fi
|
||||
|
||||
wait_for_port localhost $UI_PORT 30 "hawkbit-ui"
|
||||
|
||||
step "启动完成"
|
||||
echo ""
|
||||
echo " ┌─────────────────────────────────────────────────────┐"
|
||||
echo " │ Hawkbit Management API : http://localhost:${MONOLITH_PORT}/rest/v1 │"
|
||||
echo " │ Hawkbit DDI API : http://localhost:${MONOLITH_PORT}/DEFAULT/controller/v1 │"
|
||||
echo " │ Hawkbit UI : http://localhost:${UI_PORT} │"
|
||||
echo " │ Admin 账号 : admin / admin │"
|
||||
echo " ├─────────────────────────────────────────────────────┤"
|
||||
echo " │ 日志目录 : $LOG_DIR"
|
||||
echo " │ PID 目录 : $PID_DIR"
|
||||
echo " │ 停止 : $0 stop"
|
||||
echo " │ 状态 : $0 status"
|
||||
echo " └─────────────────────────────────────────────────────┘"
|
||||
}
|
||||
|
||||
# ── 仅 DB 初始化 ─────────────────────────────────────────────────────────────
|
||||
do_dbinit() {
|
||||
step "数据库初始化"
|
||||
|
||||
if ! pg_isready -h $PG_HOST -p $PG_PORT &>/dev/null; then
|
||||
error "PostgreSQL 未运行"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$DBINIT_JAR" ]; then
|
||||
error "DB Init JAR 未找到: $DBINIT_JAR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
java \
|
||||
-Xms256m -Xmx512m \
|
||||
-classpath "$DBINIT_JAR" \
|
||||
-Dspring.datasource.url="jdbc:postgresql://${PG_HOST}:${PG_PORT}/${PG_DB}" \
|
||||
-Dspring.datasource.username="$PG_USER" \
|
||||
-Dspring.datasource.password="$PG_PASSWORD" \
|
||||
org.eclipse.hawkbit.repository.jpa.init.HawkbitFlywayDbInit \
|
||||
migrate
|
||||
|
||||
info "DB 初始化完成"
|
||||
}
|
||||
|
||||
# ── 帮助 ─────────────────────────────────────────────────────────────────────
|
||||
do_help() {
|
||||
cat << 'EOF'
|
||||
╔══════════════════════════════════════════════════════════════════╗
|
||||
║ Hawkbit Monolith + UI 本地启动脚本 ║
|
||||
╚══════════════════════════════════════════════════════════════════╝
|
||||
|
||||
用法: start-hawkbit.sh <command>
|
||||
|
||||
命令:
|
||||
h2 H2 内嵌数据库模式(零依赖,开发测试推荐)
|
||||
postgres PostgreSQL 模式(需先: sudo apt install postgresql-16 rabbitmq-server)
|
||||
stop 停止所有服务
|
||||
status 查看服务状态
|
||||
dbinit 仅执行 DB 初始化(postgres 模式)
|
||||
help 显示此帮助
|
||||
|
||||
示例:
|
||||
./start-hawkbit.sh h2 # 快速启动,用 H2 数据库
|
||||
./start-hawkbit.sh postgres # 生产模式,用 PostgreSQL
|
||||
./start-hawkbit.sh stop # 停止
|
||||
./start-hawkbit.sh status # 查看
|
||||
|
||||
对应 Docker Compose:
|
||||
h2 ≈ docker-compose-monolith-with-ui-postgres.yml (但用 H2)
|
||||
postgres ≈ docker-compose-monolith-dbinit-with-ui-postgres.yml
|
||||
|
||||
区别:
|
||||
H2 PostgreSQL
|
||||
DB 文件存储 独立服务
|
||||
安装 零依赖 sudo apt install postgresql-16
|
||||
数据路径 h2data/ PostgreSQL pgdata/
|
||||
适用场景 开发/测试 生产模拟
|
||||
数据持久化 是 是
|
||||
|
||||
H2 模式启动后:
|
||||
MGMT API: http://localhost:9090/rest/v1
|
||||
DDI API: http://localhost:9090/DEFAULT/controller/v1
|
||||
UI: http://localhost:9091
|
||||
Admin: admin / admin
|
||||
EOF
|
||||
}
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════════════════════
|
||||
# Main
|
||||
# ═══════════════════════════════════════════════════════════════════════════════
|
||||
init
|
||||
|
||||
case "${1:-help}" in
|
||||
h2)
|
||||
start_h2
|
||||
;;
|
||||
postgres)
|
||||
start_postgres
|
||||
;;
|
||||
stop)
|
||||
do_stop
|
||||
;;
|
||||
status)
|
||||
do_status
|
||||
;;
|
||||
dbinit)
|
||||
do_dbinit
|
||||
;;
|
||||
help|--help|-h)
|
||||
do_help
|
||||
;;
|
||||
*)
|
||||
error "未知命令: $1"
|
||||
do_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -52,6 +52,8 @@ public final class TargetActionsHistory extends Grid<TargetActionsHistory.Action
|
||||
public TargetActionsHistory(final HawkbitMgmtClient hawkbitClient, TargetView.TargetActionsHistoryLayout.ActionStepsGrid actionStepsGrid) {
|
||||
this.hawkbitClient = hawkbitClient;
|
||||
setWidthFull();
|
||||
setMinHeight("200px");
|
||||
setAllRowsVisible(true);
|
||||
addColumn(new ComponentRenderer<>(ActionStatusEntry::getStatusIcon)).setHeader(STATUS).setAutoWidth(true).setFlexGrow(0);
|
||||
addColumn(ActionStatusEntry::getDistributionSetName).setHeader("Distribution Set").setAutoWidth(true);
|
||||
addColumn(Utils.localDateTimeRenderer(ActionStatusEntry::getLastModifiedAt))
|
||||
@@ -73,25 +75,60 @@ public final class TargetActionsHistory extends Grid<TargetActionsHistory.Action
|
||||
this.actionStepsGrid.setTarget(target);
|
||||
}
|
||||
|
||||
private List<ActionStatusEntry> fetchActions() {
|
||||
return hawkbitClient.getTargetRestApi().getActionHistory(target.getControllerId(), null, 0, 30, null)
|
||||
.getBody()
|
||||
.getContent()
|
||||
.stream()
|
||||
.map(action -> new ActionStatusEntry(action, () -> setItems(fetchActions())))
|
||||
.filter(value -> value.action != null)
|
||||
.toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onAttach(AttachEvent attachEvent) {
|
||||
List<ActionStatusEntry> actionStatusEntries = fetchActions();
|
||||
setItems(actionStatusEntries);
|
||||
actionStatusEntries.stream().findFirst().ifPresentOrElse(e -> {
|
||||
// select first action in the list by default
|
||||
public void loadData() {
|
||||
if (target == null) return;
|
||||
List<ActionStatusEntry> items;
|
||||
try {
|
||||
items = fetchActions();
|
||||
} catch (Exception e) {
|
||||
log.error("loadData: failed to fetch actions for target {}", target.getControllerId(), e);
|
||||
setItems(List.of());
|
||||
actionStepsGrid.setActionId(null);
|
||||
return;
|
||||
}
|
||||
log.info("loadData: {} action entries for target {}", items.size(), target.getControllerId());
|
||||
setItems(items);
|
||||
items.stream().findFirst().ifPresentOrElse(e -> {
|
||||
asSingleSelect().setValue(e);
|
||||
actionStepsGrid.setActionId(e.action.getId());
|
||||
}, () -> actionStepsGrid.setActionId(null));
|
||||
}, () -> {
|
||||
log.warn("loadData: no action entries to display");
|
||||
actionStepsGrid.setActionId(null);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Called from parent's onAttach or tab-selection listener.
|
||||
* Only triggers if a target has been set.
|
||||
*/
|
||||
public void loadIfReady() {
|
||||
if (target != null) {
|
||||
loadData();
|
||||
}
|
||||
}
|
||||
|
||||
private List<ActionStatusEntry> fetchActions() {
|
||||
final var response = hawkbitClient.getTargetRestApi().getActionHistory(target.getControllerId(), null, 0, 30, null);
|
||||
log.info("fetchActions: controllerId={}, httpStatus={}, body={}",
|
||||
target.getControllerId(),
|
||||
response.getStatusCode(),
|
||||
response.getBody() != null ? "present (" + response.getBody().getContent().size() + " actions)" : "NULL");
|
||||
if (response.getBody() == null) {
|
||||
return List.of();
|
||||
}
|
||||
return response.getBody()
|
||||
.getContent()
|
||||
.stream()
|
||||
.map(action -> {
|
||||
try {
|
||||
return new ActionStatusEntry(action, () -> setItems(fetchActions()));
|
||||
} catch (Exception e) {
|
||||
log.error("fetchActions: failed to create ActionStatusEntry for action id={}", action.getId(), e);
|
||||
return null;
|
||||
}
|
||||
})
|
||||
.filter(value -> value != null && value.action != null)
|
||||
.toList();
|
||||
}
|
||||
|
||||
protected class ActionStatusEntry {
|
||||
@@ -101,20 +138,35 @@ public final class TargetActionsHistory extends Grid<TargetActionsHistory.Action
|
||||
MgmtDistributionSet distributionSet;
|
||||
|
||||
public ActionStatusEntry(final MgmtAction mgmtAction, final Runnable onUpdate) {
|
||||
this.action = hawkbitClient.getActionRestApi().getAction(mgmtAction.getId()).getBody();
|
||||
log.info("ActionStatusEntry: fetching action id={}", mgmtAction.getId());
|
||||
final var actionResp = hawkbitClient.getActionRestApi().getAction(mgmtAction.getId());
|
||||
log.info("ActionStatusEntry: getAction(id={}) -> status={}, body={}",
|
||||
mgmtAction.getId(),
|
||||
actionResp.getStatusCode(),
|
||||
actionResp.getBody() != null ? "present" : "NULL");
|
||||
this.action = actionResp.getBody();
|
||||
this.onUpdate = onUpdate;
|
||||
if (action == null) {
|
||||
log.error("Unable to fetch the action with id : {}", mgmtAction.getId());
|
||||
return;
|
||||
}
|
||||
log.info("ActionStatusEntry: action id={} loaded, links={}",
|
||||
action.getId(),
|
||||
action.getLinks().stream().map(l -> l.getRel().value()).toList());
|
||||
this.action.getLink("distributionset").ifPresent(link -> {
|
||||
log.info("ActionStatusEntry: found distributionset link, href={}", link.getHref());
|
||||
try {
|
||||
Long dsId = Long.parseLong(link.getHref().substring(link.getHref().lastIndexOf("/") + 1));
|
||||
this.distributionSet = hawkbitClient.getDistributionSetRestApi().getDistributionSet(dsId).getBody();
|
||||
log.info("ActionStatusEntry: distributionSet loaded, name={}",
|
||||
this.distributionSet != null ? this.distributionSet.getName() : "NULL");
|
||||
} catch (NumberFormatException e) {
|
||||
log.error("Error parsing distribution set ID", e);
|
||||
}
|
||||
});
|
||||
if (this.action.getLink("distributionset").isEmpty()) {
|
||||
log.warn("ActionStatusEntry: NO distributionset link found for action id={}", action.getId());
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isActive() {
|
||||
|
||||
@@ -127,6 +127,9 @@ public class DistributionSetView extends TableView<MgmtDistributionSet, Long> {
|
||||
|
||||
private final TextField name = Utils.textField("Name");
|
||||
|
||||
private static final java.util.regex.Pattern RSQL_OP =
|
||||
java.util.regex.Pattern.compile("==|!=|=like=|=unlike=|=gt=|=ge=|=lt=|=le=|=in=|=out=");
|
||||
|
||||
private DistributionSetRawFilter() {
|
||||
name.setPlaceholder("<rsql filter>");
|
||||
}
|
||||
@@ -138,13 +141,25 @@ public class DistributionSetView extends TableView<MgmtDistributionSet, Long> {
|
||||
|
||||
@Override
|
||||
public String filter() {
|
||||
return name.getOptionalValue().orElse(null);
|
||||
return name.getOptionalValue().map(raw -> {
|
||||
if (RSQL_OP.matcher(raw).find()) {
|
||||
return raw;
|
||||
}
|
||||
// plain text: wrap as wildcard search on name and version
|
||||
return "(name==*" + encodeRsqlValue(raw) + "*,version==*" + encodeRsqlValue(raw) + "*)";
|
||||
}).orElse(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFilter(String filter) {
|
||||
name.setValue(filter);
|
||||
}
|
||||
|
||||
private static String encodeRsqlValue(String value) {
|
||||
return value.replace("\\", "\\\\")
|
||||
.replace("*", "\\*")
|
||||
.replace("\"", "\\\"");
|
||||
}
|
||||
}
|
||||
|
||||
private static class DistributionSetFilter implements Filter.Rsql {
|
||||
|
||||
@@ -50,6 +50,7 @@ import com.vaadin.flow.component.orderedlayout.FlexComponent;
|
||||
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
|
||||
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
||||
import com.vaadin.flow.component.select.Select;
|
||||
import com.vaadin.flow.component.tabs.Tab;
|
||||
import com.vaadin.flow.component.tabs.TabSheet;
|
||||
import com.vaadin.flow.component.textfield.TextArea;
|
||||
import com.vaadin.flow.component.textfield.TextField;
|
||||
@@ -330,9 +331,24 @@ public final class TargetView extends TableView<TargetView.TargetWithDs, String>
|
||||
return List.of(layout);
|
||||
}
|
||||
|
||||
private static final java.util.regex.Pattern RSQL_OP =
|
||||
java.util.regex.Pattern.compile("==|!=|=like=|=unlike=|=gt=|=ge=|=lt=|=le=|=in=|=out=");
|
||||
|
||||
@Override
|
||||
public String filter() {
|
||||
return textFilter.getOptionalValue().orElse(null);
|
||||
return textFilter.getOptionalValue().map(raw -> {
|
||||
if (RSQL_OP.matcher(raw).find()) {
|
||||
return raw;
|
||||
}
|
||||
// plain text: wrap as wildcard search on controllerId and name
|
||||
return "(controllerid==*" + encodeRsqlValue(raw) + "*,name==*" + encodeRsqlValue(raw) + "*)";
|
||||
}).orElse(null);
|
||||
}
|
||||
|
||||
private static String encodeRsqlValue(String value) {
|
||||
return value.replace("\\", "\\\\")
|
||||
.replace("*", "\\*")
|
||||
.replace("\"", "\\\"");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -352,9 +368,11 @@ public final class TargetView extends TableView<TargetView.TargetWithDs, String>
|
||||
private final TargetTags targetTags;
|
||||
private final TargetMetadata targetMetadata;
|
||||
private final TargetActionsHistoryLayout targetActionsHistoryLayout;
|
||||
private final TabSheet tabSheet;
|
||||
private final Tab actionHistoryTab;
|
||||
|
||||
private TargetDetailedView(final HawkbitMgmtClient hawkbitClient) {
|
||||
final TabSheet tabSheet = new TabSheet();
|
||||
tabSheet = new TabSheet();
|
||||
tabSheet.setWidthFull();
|
||||
targetId = new Span();
|
||||
targetDetails = new TargetDetails(hawkbitClient);
|
||||
@@ -369,8 +387,16 @@ public final class TargetView extends TableView<TargetView.TargetWithDs, String>
|
||||
tabSheet.add("Assigned / Installed", targetAssignedInstalled);
|
||||
tabSheet.add("Tags", targetTags);
|
||||
tabSheet.add("Metadata", targetMetadata);
|
||||
tabSheet.add("Action History", targetActionsHistoryLayout);
|
||||
actionHistoryTab = tabSheet.add("Action History", targetActionsHistoryLayout);
|
||||
add(tabSheet);
|
||||
|
||||
// Load action history data when the tab becomes visible.
|
||||
// onAttach handles the first time; this listener handles subsequent tab switches.
|
||||
tabSheet.addSelectedChangeListener(e -> {
|
||||
if (e.getSelectedTab() == actionHistoryTab) {
|
||||
targetActionsHistoryLayout.refresh();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setItem(final MgmtTarget target) {
|
||||
@@ -685,6 +711,16 @@ public final class TargetView extends TableView<TargetView.TargetWithDs, String>
|
||||
targetActionsHistory.setItem(target);
|
||||
}
|
||||
|
||||
public void refresh() {
|
||||
targetActionsHistory.loadData();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onAttach(AttachEvent attachEvent) {
|
||||
super.onAttach(attachEvent);
|
||||
targetActionsHistory.loadIfReady();
|
||||
}
|
||||
|
||||
public static class ActionStepsGrid extends Grid<ActionStepsGrid.ActionStepEntry> {
|
||||
|
||||
@Serial
|
||||
@@ -715,11 +751,6 @@ public final class TargetView extends TableView<TargetView.TargetWithDs, String>
|
||||
.toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onAttach(AttachEvent attachEvent) {
|
||||
setItems(fetchActionSteps());
|
||||
}
|
||||
|
||||
public void setActionId(Long id) {
|
||||
actionId = id;
|
||||
setItems(fetchActionSteps());
|
||||
|
||||
Reference in New Issue
Block a user