Code: Select all
org.hibernate.QueryException: Parameter 1 of function max() has type COMPARABLE, but argument is of type ...
Das Problem stammt aus einem mit @Type kommentierten Entitätsattribut, da die Attributklasse eine serialisierbare Schnittstelle implementiert
implementiert.
Code: Select all
@Type(value = SalaryType.class)
private Salary salary;
< /code>
Wenn serialisierbar aus der Gehaltsklassendefinition entfernt wird, funktioniert die Abfrage einwandfrei. Leider kann ich die serialisierbare Schnittstelle aus der Klassendefinition nicht entfernen, daher muss ich eine andere Lösung abgeben. Ich werde hier teilen. < /P>
DB -Tabelle < /p>
CREATE TABLE t_jd_office_employee (
id varchar(40) NOT NULL PRIMARY KEY,
salary varchar
);
< /code>
Entität < /p>
@Entity
@Table(name = "t_jd_office_employee")
public class OfficeEmployee {
@Id
@Column(length = 40)
private String id;
@Type(value = SalaryType.class)
private Salary salary;
}
< /code>
metamodel < /p>
@StaticMetamodel(OfficeEmployee.class)
@Generated("org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")
public abstract class OfficeEmployee_ {
public static volatile SingularAttribute salary;
}
< /code>
Gehalt < /p>
public class Salary implements Serializable, Comparable {
private Long amount;
private String currency;
public Long getAmount() {
return amount;
}
public void setAmount(Long amount) {
this.amount = amount;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String asStringValue() {
return Stream.of(amount, currency)
.filter(Objects::nonNull)
.map(Objects::toString)
.reduce((a, b) -> a + " " + b)
.orElse("");
}
@Override
public int compareTo(Salary o) {
return this.asStringValue().compareTo(o.asStringValue());
}
@Override
public boolean equals(Object o) {
if (o == null || getClass() != o.getClass())
return false;
Salary salary = (Salary) o;
return Objects.equals(this.asStringValue(), salary.asStringValue());
}
@Override
public int hashCode() {
return Objects.hash(this.asStringValue());
}
@Override
public String toString() {
return this.asStringValue();
}
}
< /code>
userType < /p>
public class SalaryType implements UserType {
@Override
public int getSqlType() {
return Types.VARCHAR;
}
@Override
public Class returnedClass() {
return Salary.class;
}
@Override
public boolean equals(Salary x, Salary y) {
return x != null && x.equals(y);
}
@Override
public int hashCode(Salary x) {
return x == null ? Objects.hashCode(null) : x.hashCode();
}
@Override
public Salary nullSafeGet(ResultSet rs, int position, SharedSessionContractImplementor session, Object owner)
throws SQLException {
final var salaryValue = rs.getString(position);
if (salaryValue == null) {
return null;
}
final var matcher = Pattern.compile("^(\\d+)?( )*([A-Z]{3})?$").matcher(salaryValue);
if (matcher.matches()) {
final var amount = matcher.group(1) == null ? null : Long.parseLong(matcher.group(1));
final var salary = new Salary();
salary.setAmount(amount);
salary.setCurrency(matcher.group(3));
return salary;
} else {
return null;
}
}
@Override
public void nullSafeSet(PreparedStatement st, Salary value, int index, SharedSessionContractImplementor session)
throws SQLException {
if (Objects.isNull(value))
st.setNull(index, Types.VARCHAR);
else {
st.setString(index, value.asStringValue());
}
}
@Override
public Salary deepCopy(Salary value) {
if (value == null) {
return null;
}
final var salary = new Salary();
salary.setAmount(value.getAmount());
salary.setCurrency(value.getCurrency());
return salary;
}
@Override
public boolean isMutable() {
return false;
}
@Override
public Serializable disassemble(Salary value) {
return value;
}
@Override
public Salary assemble(Serializable cached, Object owner) {
return (Salary) cached ;
}
}
< /code>
queriaQuery < /p>
private Optional queryMaxSalary() {
try (var em = emf.createEntityManager()) {
final var criteriaBuilder = em.getCriteriaBuilder();
final var query = criteriaBuilder.createQuery(Salary.class);
final var root = query.from(OfficeEmployee.class);
query.select(criteriaBuilder.greatest(root.get(OfficeEmployee_.salary)));
try {
final var result = em.createQuery(query).getSingleResult();
return Optional.of(result);
}
catch (NoResultException ex) {
logger.warn("No max salary found");
return Optional.empty();
}
}
}
< /code>
Persistence.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence
https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd"
version="3.0">
org.hibernate.jpa.HibernatePersistenceProvider
java:jboss/datasources/P5XADS
< /code>
Der Fehler < /p>
2025-02-21 08:54:46,247 ERROR [org.jboss.resteasy.core.providerfactory.DefaultExceptionMapper] (default task-1) RESTEASY002375: Error processing request GET /p5-office/rest/office/salary/max - local.jd.example.office.OfficeResource.getMaxSalary: org.hibernate.QueryException: Parameter 1 of function max() has type COMPARABLE, but argument is of type local.jd.example.office.Salary
< /code>
pom.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
local.jd.example.office
office-webapp
1.0-SNAPSHOT
war
17
17
UTF-8
29.0.1.Final
${version.server}
5.1.1.Final
localhost
9990
admin
******
jakarta.inject
jakarta.inject-api
2.0.1
provided
jakarta.enterprise
jakarta.enterprise.cdi-api
4.0.1
provided
jakarta.ws.rs
jakarta.ws.rs-api
3.1.0
provided
org.slf4j
slf4j-api
2.0.16
provided
org.hibernate.orm
hibernate-core
6.2.6.Final
p5-office
org.wildfly.plugins
wildfly-maven-plugin
${version.plugin.wildfly}
${wildfly.hostname}
${wildfly.port}
${wildfly.username}
${wildfly.password}
org.apache.maven.plugins
maven-war-plugin
3.4.0
false
< /code>
Full Stack Trace < /p>
2025-02-23 10:38:35,683 ERROR [org.jboss.resteasy.core.providerfactory.DefaultExceptionMapper] (default task-1) RESTEASY002375: Error processing request GET /p5-office/rest/office/salary/max - local.jd.example.office.OfficeResource.getMaxSalary: org.hibernate.QueryException: Parameter 1 of function max() has type COMPARABLE, b u t a r g u m e n t i s o f t y p e l o c a l . j d . e x a m p l e . o f f i c e . S a l a r y < b r / > a t o r g . h i b e r n a t e @ 6 . 2 . 6 . F i n a l / / o r g . h i b e r n a t e . q u e r y . s q m . p r o d u c e . f u n c t i o n . A r g u m e n t T y p e s V a l i d a t o r . t h r o w E r r o r ( A r g u m e n t T y p e s V a l i d a t o r . j a v a : 2 5 3 ) < b r / > a t o r g . h i b e r n a t e @ 6 . 2 . 6 . F i n a l / / o r g . h i b e r n a t e . q u e r y . s q m . p r o d u c e . f u n c t i o n . A r g u m e n t T y p e s V a l i d a t o r . c h e c k T y p e ( A r g u m e n t T y p e s V a l i d a t o r . j a v a : 1 9 9 ) < b r / > a t o r g . h i b e r n a t e @ 6 . 2 . 6 . F i n a l / / o r g . h i b e r n a t e . q u e r y . s q m . p r o d u c e . f u n c t i o n . A r g u m e n t T y p e s V a l i d a t o r . v a l i d a t e ( A r g u m e n t T y p e s V a l i d a t o r . j a v a : 9 8 ) < b r / > a t o r g . h i b e r n a t e @ 6 . 2 . 6 . F i n a l / / o r g . h i b e r n a t e . q u e r y . s q m . f u n c t i o n . A b s t r a c t S q m F u n c t i o n D e s c r i p t o r . g e n e r a t e S q m E x p r e s s i o n ( A b s t r a c t S q m F u n c t i o n D e s c r i p t o r . j a v a : 1 0 4 ) < b r / > a t o r g . h i b e r n a t e @ 6 . 2 . 6 . F i n a l / / o r g . h i b e r n a t e . q u e r y . s q m . f u n c t i o n . S q m F u n c t i o n D e s c r i p t o r . g e n e r a t e S q m E x p r e s s i o n ( S q m F u n c t i o n D e s c r i p t o r . j a v a : 1 1 7 ) < b r / > a t o r g . h i b e r n a t e @ 6 . 2 . 6 . F i n a l / / o r g . h i b e r n a t e . q u e r y . s q m . i n t e r n a l . S q m C r i t e r i a N o d e B u i l d e r . g r e a t e s t ( S q m C r i t e r i a N o d e B u i l d e r . j a v a : 8 7 3 ) < b r / > a t o r g . h i b e r n a t e @ 6 . 2 . 6 . F i n a l / / o r g . h i b e r n a t e . q u e r y . s q m . i n t e r n a l . S q m C r i t e r i a N o d e B u i l d e r . g r e a t e s t ( S q m C r i t e r i a N o d e B u i l d e r . j a v a : 1 8 2 ) < b r / > a t d e p l o y m e n t . p 5 - o f f i c e . w a r / / l o c a l . j d . e x a m p l e . o f f i c e . O f f i c e R e s o u r c e . q u e r y M a x S a l a r y ( O f f i c e R e s o u r c e . j a v a : 5 6 ) < b r / > a t d e p l o y m e n t . p 5 - o f f i c e . w a r / / l o c a l . j d . e x a m p l e . o f f i c e . O f f i c e R e s o u r c e . g e t M a x S a l a r y ( O f f i c e R e s o u r c e . j a v a : 3 6 ) < b r / > a t d e p l o y m e n t . p 5 - o f f i c e . w a r / / l o c a l . j d . e x a m p l e . o f f i c e . O f f i c e R e s o u r c e $ P r o x y $ _ $ $ _ W e l d C l i e n t P r o x y . g e t M a x S a l a r y ( U n k n o w n S o u r c e ) < b r / > a t j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . N a t i v e M e t h o d A c c e s s o r I m p l . i n v o k e 0 ( N a t i v e M e t h o d ) < b r / > a t j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . N a t i v e M e t h o d A c c e s s o r I m p l . i n v o k e ( N a t i v e M e t h o d A c c e s s o r I m p l . j a v a : 7 7 ) < b r / > a t j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . D e l e g a t i n g M e t h o d A c c e s s o r I m p l . i n v o k e ( D e l e g a t i n g M e t h o d A c c e s s o r I m p l . j a v a : 4 3 ) < b r / > a t j a v a . b a s e / j a v a . l a n g . r e f l e c t . M e t h o d . i n v o k e ( M e t h o d . j a v a : 5 6 8 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . M e t h o d I n j e c t o r I m p l . i n v o k e ( M e t h o d I n j e c t o r I m p l . j a v a : 1 5 4 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . M e t h o d I n j e c t o r I m p l . i n v o k e ( M e t h o d I n j e c t o r I m p l . j a v a : 1 1 8 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . R e s o u r c e M e t h o d I n v o k e r . i n t e r n a l I n v o k e O n T a r g e t ( R e s o u r c e M e t h o d I n v o k e r . j a v a : 5 6 0 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . R e s o u r c e M e t h o d I n v o k e r . i n v o k e O n T a r g e t A f t e r F i l t e r ( R e s o u r c e M e t h o d I n v o k e r . j a v a : 4 5 2 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . R e s o u r c e M e t h o d I n v o k e r . l a m b d a $ i n v o k e O n T a r g e t $ 2 ( R e s o u r c e M e t h o d I n v o k e r . j a v a : 4 1 3 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . i n t e r c e p t i o n . j a x r s . P r e M a t c h C o n t a i n e r R e q u e s t C o n t e x t . f i l t e r ( P r e M a t c h C o n t a i n e r R e q u e s t C o n t e x t . j a v a : 3 2 1 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . R e s o u r c e M e t h o d I n v o k e r . i n v o k e O n T a r g e t ( R e s o u r c e M e t h o d I n v o k e r . j a v a : 4 1 5 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . R e s o u r c e M e t h o d I n v o k e r . i n v o k e ( R e s o u r c e M e t h o d I n v o k e r . j a v a : 3 7 8 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . R e s o u r c e M e t h o d I n v o k e r . i n v o k e ( R e s o u r c e M e t h o d I n v o k e r . j a v a : 3 5 6 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . R e s o u r c e M e t h o d I n v o k e r . i n v o k e ( R e s o u r c e M e t h o d I n v o k e r . j a v a : 7 0 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . S y n c h r o n o u s D i s p a t c h e r . i n v o k e ( S y n c h r o n o u s D i s p a t c h e r . j a v a : 4 2 9 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . S y n c h r o n o u s D i s p a t c h e r . l a m b d a $ i n v o k e $ 4 ( S y n c h r o n o u s D i s p a t c h e r . j a v a : 2 4 0 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . S y n c h r o n o u s D i s p a t c h e r . l a m b d a $ p r e p r o c e s s $ 0 ( S y n c h r o n o u s D i s p a t c h e r . j a v a : 1 5 4 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . i n t e r c e p t i o n . j a x r s . P r e M a t c h C o n t a i n e r R e q u e s t C o n t e x t . f i l t e r ( P r e M a t c h C o n t a i n e r R e q u e s t C o n t e x t . j a v a : 3 2 1 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . S y n c h r o n o u s D i s p a t c h e r . p r e p r o c e s s ( S y n c h r o n o u s D i s p a t c h e r . j a v a : 1 5 7 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . c o r e . S y n c h r o n o u s D i s p a t c h e r . i n v o k e ( S y n c h r o n o u s D i s p a t c h e r . j a v a : 2 2 9 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . p l u g i n s . s e r v e r . s e r v l e t . S e r v l e t C o n t a i n e r D i s p a t c h e r . s e r v i c e ( S e r v l e t C o n t a i n e r D i s p a t c h e r . j a v a : 2 2 2 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . p l u g i n s . s e r v e r . s e r v l e t . H t t p S e r v l e t D i s p a t c h e r . s e r v i c e ( H t t p S e r v l e t D i s p a t c h e r . j a v a : 5 5 ) < b r / > a t o r g . j b o s s . r e s t e a s y . r e s t e a s y - c o r e @ 6 . 2 . 5 . F i n a l / / o r g . j b o s s . r e s t e a s y . p l u g i n s . s e r v e r . s e r v l e t . H t t p S e r v l e t D i s p a t c h e r . s e r v i c e ( H t t p S e r v l e t D i s p a t c h e r . j a v a : 5 1 ) < b r / > a t j a k a r t a . s e r v l e t . a p i @ 6 . 0 . 0 / / j a k a r t a . s e r v l e t . h t t p . H t t p S e r v l e t . s e r v i c e ( H t t p S e r v l e t . j a v a : 6 1 4 ) < b r / > a t i o . u n d e r t o w . s e r v l e t @ 2 . 3 . 7 . F i n a l / / i o . u n d e r t o w . s e r v l e t . h a n d l e r s . S e r v l e t H a n d l e r . h a n d l e R e q u e s t ( S e r v l e t H a n d l e r . j a v a : 7 4 ) < b r / > a t i o . u n d e r t o w . s e r v l e t @ 2 . 3 . 7 . F i n a l / / i o . u n d e r t o w . s e r v l e t . h a n d l e r s . s e c u r i t y . S e r v l e t S e c u r i t y R o l e H a n d l e r . h a n d l e R e q u e s t ( S e r v l e t S e c u r i t y R o l e H a n d l e r . j a v a : 6 2 ) < b r / > a t i o . u n d e r t o w . s e r v l e t @ 2 . 3 . 7 . F i n a l / / i o . u n d e r t o w . s e r v l e t . h a n d l e r s . S e r v l e t C h a i n $ 1 . h a n d l e R e q u e s t ( S e r v l e t C h a i n . j a v a : 6 8 ) < b r / > a t i o . u n d e r t o w . s e r v l e t @ 2 . 3 . 7 . F i n a l / / i o . u n d e r t o w . s e r v l e t . h a n d l e r s . S e r v l e t D i s p a t c h i n g H a n d l e r . h a n d l e R e q u e s t ( S e r v l e t D i s p a t c h i n g H a n d l e r . j a v a : 3 6 ) < b r / > a t o r g . w i l d f l y . s e c u r i t y . e l y t r o n - w e b . u n d e r t o w - s e r v e r @ 4 . 0 . 0 . F i n a l / / o r g . w i l d f l y . e l y t r o n . w e b . u n d e r t o w . s e r v e r . E l y t r o n R u n A s H a n d l e r . l a m b d a $ h a n d l e R e q u e s t $ 1 ( E l y t r o n R u n A s H a n d l e r . j a v a : 6 8 ) < b r / > a t o r g . w i l d f l y . s e c u r i t y . e l y t r o n - b a s e @ 2 . 2 . 1 . F i n a l / / o r g . w i l d f l y . s e c u r i t y . a u t h . s e r v e r . F l e x i b l e I d e n t i t y A s s o c i a t i o n . r u n A s F u n c t i o n E x ( F l e x i b l e I d e n t i t y A s s o c i a t i o n . j a v a : 1 0 3 ) < b r / > a t o r g . w i l d f l y . s e c u r i t y . e l y t r o n - b a s e @ 2 . 2 . 1 . F i n a l / / o r g . w i l d f l y . s e c u r i t y . a u t h . s e r v e r . S c o p e d . r u n A s F u n c t i o n E x ( S c o p e d . j a v a : 1 6 1 ) < b r / > a t o r g . w i l d f l y . s e c u r i t y . e l y t r o n - b a s e @ 2 . 2 . 1 . F i n a l / / o r g . w i l d f l y . s e c u r i t y . a u t h . s e r v e r . S c o p e d . r u n A s ( S c o p e d . j a v a : 7 3 ) < b r / > a t o r g . w i l d f l y . s e c u r i t y . e l y t r o n - w e b . u n d e r t o w - s e r v e r @ 4 . 0 . 0 . F i n a l / / o r g . w i l d f l y . e l y t r o n . w e b . u n d e r t o w . s e r v e r . E l y t r o n R u n A s H a n d l e r . h a n d l e R e q u e s t ( E l y t r o n R u n A s H a n d l e r . j a v a : 6 7 ) < b r / > a t i o . u n d e r t o w . s e r v l e t @ 2 . 3 . 7 . F i n a l / / i o . u n d e r t o w . s e r v l e t . h a n d l e r s . R e d i r e c t D i r H a n d l e r . h a n d l e R e q u e s t ( R e d i r e c t D i r H a n d l e r . j a v a : 6 8 ) < b r / > a t i o . u n d e r t o w . s e r v l e t @ 2 . 3 . 7 . F i n a l / / i o . u n d e r t o w . s e r v l e t . h a n d l e r s . s e c u r i t y . S S L I n f o r m a t i o n A s s o c i a t i o n H a n d l e r . h a n d l e R e q u e s t ( S S L I n f o r m a t i o n A s s o c i a t i o n H a n d l e r . j a v a : 1 1 7 ) < b r / > a t io.undertow.servlet@2.3.7.Final//io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.core@2.3.7.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.core@2.3.7.Final//io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet@2.3.7.Final//io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.core@2.3.7.Final//io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at org.wildfly.security.elytron-web.undertow-server-servlet@4.0.0.Final//org.wildfly.elytron.web.undertow.server.servlet.CleanUpHandler.handleRequest(CleanUpHandler.java:38)
at io.undertow.core@2.3.7.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow@29.0.1.Final//org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.core@2.3.7.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow@29.0.1.Final//org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
at io.undertow.servlet@2.3.7.Final//io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
at io.undertow.core@2.3.7.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet@2.3.7.Final//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
at io.undertow.servlet@2.3.7.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
at io.undertow.servlet@2.3.7.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
at io.undertow.servlet@2.3.7.Final//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undertow.servlet@2.3.7.Final//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at org.wildfly.extension.undertow@29.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1430)
at org.wildfly.extension.undertow@29.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1430)
at org.wildfly.extension.undertow@29.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1430)
at org.wildfly.extension.undertow@29.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1430)
at org.wildfly.extension.undertow@29.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1430)
at io.undertow.servlet@2.3.7.Final//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
at io.undertow.servlet@2.3.7.Final//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:101)
at io.undertow.core@2.3.7.Final//io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
at io.undertow.core@2.3.7.Final//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at org.jboss.xnio@3.8.9.Final//org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
at java.base/java.lang.Thread.run(Thread.java:833)