Ausnahme in Thread "main" java.lang.reflect.invocationTargetException
at java.base /jdk.internal.reflect.directMethodhandleAccessor.invoke (unbekannt
Quelle)
bei java.base /java.lang.reflect.method.invoke (unbekannte Quelle)
at org.springframework.boot.loader.launch.launcher.launch (Launcher.java:102)
at org.springframework.boot.loader.launch.launcher.launch (launcher.java:64)
unter org.springframework.boot.loader.launch.jarlauner.main (Jarlauner.java:40))
verursacht durch: java.lang.reflect.invocationTargetException < /p>
< /blockquote>
Und dieser Fehler: < /p>
verursacht durch: java.lang.stackoverflowerror
bei java.base /java.lang.threadlocal.getCarrierThreadlocal (unbekannte Quelle)
bei java.base /java .Lang.System $ 2.getCarrierthreadlocal (unbekannte Quelle)
bei java.base /jdk.internal.misc.Carrierthreadlocal.get (unbekannte Quelle)
bei Java.base /sun.nio.fs.nativeBuffers. GetNativeBufferfromcache (unbekannt
Quelle)
at java.base /sun.nio.fs.unixnativedispatcher.CopytonativeBuffer (unbekannte
)
bei java.base /sun.nio.fs. Unixnativedispatcher.stat (unbekannte Quelle)
at java.base /sun.nio.fs.unixFileTtributes.get (unbekannte Quelle)
bei java.base /sun.nio.fs.unixFileTtributeviews $ Basic.ReadatTributes (( Unbekannte
Quelle)
at java.base /sun.nio.fs.unixFilesystemProvider.Readattributes (unbekannt
Source)
bei Java.base /sun.fs.LinuxFilesystem. ReadAttributes (Unbekannte
Quelle)
at java.base /java.nio.file.files.Readattributes (unbekannte Quelle)
bei java.base /java.util.zip.zipfile $ Quelle. Get (unbekannte Quelle)
bei java.base /java.util.zip.zipfile $ cleanableresource. (Unbekannte
Quelle)
bei java.base /java.util.zip.zipfile. (((( Unbekannte Quelle)
at java.base /java.util.zip.zipfile. (Unbekannte Quelle)
at java.base /java.util.jar.jarfile. (Unbekannte Quelle)
at java.base /java.util.jar.jarfile. (unbekannte Quelle)
at java.base /java.util.jar.jarfile. (Unbekannte Quelle)
at org.springframework.boot.loader. Jar.NestedJarfile. (nestedjarfile.java:141)
at org.springframework.boot.loader.jar.nestedJarfile. protocol.jar.urlnestedJarfile. (urlnestedjarfile.java:42)
at org.springFramework.boot.Loader.net.Protocol.jar.urljarFileFactory.createjarbileford (urljarfilefactory.jarfactory.jarfactory. .boot.loader.net.protocol.jar.urljarfilefactory.createJarfile (urljarfilefactory.java:55)
bei org.springframework.boot.loader.net.protocol.jar.urljarbiles.getorcreat (urljeckreat (urljarfiles
at org.springframework.boot.loader.net.protocol.jar.jarurlconnection.connect (jarurlConnection.java:289)
at org.springFramework.boot.loader.net.protocol.jar.jarurlconnection. getJarfile (jarurlConnection.java:99)
at org.springframework.boot.loader.net.protocol.jar.jarurlClassloader.getJarfile (jarurlclassloader.java:188)
at ord.sPlamework.Boot.Lader. net.protocol.jar.jarurlclassloader.definepackage (jarurlClassloader.java:146)
at org.springFramework.boot.loader.net.net.protocol.jar.jarurlClassloader.DefinePaceIfny Br /> < /blockquote>
< /blockquote>
Ich verwende auch Helm, aber mit den Helm -Dateien ist alles in Ordnung. < /p>
Mein Dockerfile sieht so aus: < /p>
FROM devtools.mlp.de/ubi8/minimum/java-21:8.10-1088-1-java21.0.5_11
ARG COMMIT_ID=WirdDurchJenkinsGesetztWerden
COPY /target/*-spring-boot.jar app.jar
ENTRYPOINT ["java", "-Xms2G", "-Xmx2G", "-XX:+UseG1GC", "-XX:+ExitOnOutOfMemoryError", "-jar", "app.jar"]
LABEL COMMIT_ID=${COMMIT_ID}
< /code>
Und mein Pom sieht so aus: < /p>
x s i : s c h e m a L o c a t i o n = & q u o t ; h t t p : / / m a v e n . a p a c h e . o r g / P O M / 4 . 0 . 0 h t t p s : / / m a v e n . a p a c h e . o r g / x s d / m a v e n - 4 . 0 . 0 . x s d & q u o t ; & g t ; < b r / > & l t ; m o d e l V e r s i o n & g t ; 4 . 0 . 0 & l t ; / m o d e l V e r s i o n & g t ; < b r / > < b r / > & l t ; p a r e n t & g t ; < b r / > & l t ; g r o u p I d & g t ; o r g . s p r i n g f r a m e w o r k . b o o t & l t ; / g r o u p I d & g t ; < b r / > & l t ; a r t i f a c t I d & g t ; s p r i n g - b o o t - s t a r t e r - p a r e n t & l t ; / a r t i f a c t I d & g t ; < b r / > & l t ; v e r s i o n & g t ; 3 . 4 . 1 & l t ; / v e r s i o n & g t ; < b r / > & l t ; r e l a t i v e P a t h / & g t ; < b r / > & l t ; / p a r e n t & g t ; < b r / > < b r / > & l t ; g r o u p I d & g t ; c o m . m l p & l t ; / g r o u p I d & g t ; < b r / > & l t ; a r t i f a c t I d & g t ; b e r u f e s u c h e & l t ; / a r t i f a c t I d & g t ; < b r / > & l t ; v e r s i o n & g t ; 1 . 0 . 0 - S N A P S H O T & l t ; / v e r s i o n & g t ; < b r / > & l t ; p a c k a g i n g & g t ; j a r & l t ; / p a c k a g i n g & g t ; < b r / > < b r / > & l t ; p r o p e r t i e s & g t ; < b r / > & l t ; j a v a . v e r s i o n & g t ; 2 1 & l t ; / j a v a . v e r s i o n & g t ; < b r / > & l t ; p r o j e c t . b u i l d . s o u r c e E n c o d i n g & g t ; U T F - 8 & l t ; / p r o j e c t . b u i l d . s o u r c e E n c o d i n g & g t ; < b r / > < b r / > & l t ; m a v e n - c o m p i l e r - p l u g i n . v e r s i o n & g t ; 3 . 1 3 . 0 & l t ; / m a v e n - c o m p i l e r - p l u g i n . v e r s i o n & g t ; < b r / > & l t ; m a v e n - c l e a n - p l u g i n . v e r s i o n & g t ; 3 . 4 . 0 & l t ; / m a v e n - c l e a n - p l u g i n . v e r s i o n & g t ; < b r / > & l t ; m a v e n - s u r e f i r e - p l u g i n - v e r s i o n & g t ; 3 . 5 . 2 & l t ; / m a v e n -surefire-plugin-version>
3.8.1
3.4.0
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
org.apache.maven.plugins
maven-compiler-plugin
${maven-compiler-plugin.version}
${java.version}
true
org.springframework.boot
spring-boot-maven-plugin
${maven-spring-boot-plugin.version}
repackage
spring-boot
org.apache.maven.plugins
maven-dependency-plugin
${maven-dependency-plugin.version}
properties
org.apache.maven.plugins
maven-surefire-plugin
${maven-surefire-plugin-version}
org.apache.maven.plugins
maven-clean-plugin
${maven-clean-plugin.version}
OWASP
org.owasp
dependency-check-maven
maven-releases
Nexus Repository Releases
https://devtools.mlp.de/nexus/repositor ... -releases/
maven-snapshots
Nexus Repository Snapshots
https://devtools.mlp.de/nexus/repositor ... snapshots/
`
< /code>
Letzte, aber nicht zuletzt meine Anwendungseigenschaften: < /p>
spring.application.name=berufesuche
management.prometheus.metrics.export.enabled=true
management.endpoints.web.exposure.include=health,prometheus,info
management.endpoint.health.show-details=always
< /code>
config.yaml
image:
repository: berufesuche
tag: minikube
pullPolicy: IfNotPresent
ingress:
hosts:
- host: pa.localhost
paths:
- path: /berufesuche(/|)(.*)
pathType: ImplementationSpecific
< /code>
DeploymentapiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "berufesuche.fullname" . }}
labels:
app: {{- include "berufesuche.labels" . | nindent 4 }}
spec:
{{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "berufesuche.selectorLabels" . | nindent 6 }}
template:
metadata:
annotations:
co.elastic.logs/enabled: "true"
co.elastic.logs/raw: >-
[{
"type": "container",
"paths": ["/var/log/containers/*-${data.kubernetes.container.id}.log"],
"json": {
"message_key": "message",
"keys_under_root": true,
"overwrite_keys": false,
"add_error_key": true
}
}]
co.elastic.metrics/module: prometheus
co.elastic.metrics/hosts: '${data.host}:8080'
co.elastic.metrics/metrics_path: {{ .Values.app.contextRoot }}/actuator/prometheus
co.elastic.metrics/period: 1m
labels:
{{- include "berufesuche.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "berufesuche.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
livenessProbe:
httpGet:
path: {{ .Values.app.contextRoot }}/actuator/health
port: http
initialDelaySeconds: 30
timeoutSeconds: 10
periodSeconds: 20
readinessProbe:
httpGet:
path: {{ .Values.app.contextRoot }}/actuator/health
port: http
initialDelaySeconds: 30
timeoutSeconds: 10
periodSeconds: 20
env:
- name: SPRING_PROFILES_ACTIVE
value: {{ .Values.berufesuche.profiles.active }}
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: {{ .Values.berufesuche.postgres.userSecret }}
key: {{ .Values.berufesuche.postgres.user }}
- name: POSTGRES_SECRET
valueFrom:
secretKeyRef:
name: {{ .Values.berufesuche.postgres.userSecret }}
key: {{ .Values.berufesuche.postgres.secret }}
- name: POSTGRES_URL
value: {{ .Values.berufesuche.postgres.url }}
- name: FLYWAY_USER
valueFrom:
secretKeyRef:
name: {{ .Values.berufesuche.postgres.userSecret }}
key: {{ .Values.berufesuche.flyway.user }}
- name: FLYWAY_SECRET
valueFrom:
secretKeyRef:
name: {{ .Values.berufesuche.postgres.userSecret }}
key: {{ .Values.berufesuche.flyway.secret }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
# SQL Proxy als Sidecar
{{ if .Values.berufesuche.postgres.useSqlProxy }}
- name: cloud-sql-proxy
image: gcr.io/cloudsql-docker/gce-proxy:1.32.0
command:
- '/cloud_sql_proxy'
- '-instances=$(DB_INSTANCE)=tcp:5432'
securityContext:
runAsNonRoot: true
resources:
requests:
memory: '64m'
cpu: '0.1'
env:
# Aus den K8s-Configmaps in den jeweiligen Umgebungen
- name: DB_INSTANCE
valueFrom:
configMapKeyRef:
name: {{ .Values.berufesuche.postgres.sqlProxyConfigMapName }}
key: uri
{{ end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
< /code>
Danke im Voraus!
Vielleicht kann mir jemand helfen
