Код: Выделить всё
org.hibernate.QueryException: Parameter 1 of function max() has type COMPARABLE, but argument is of type ...
Проблема возникает из атрибута объекта, аннотированного с @type, потому что класс атрибутов реализует интерфейс serializable
Код: Выделить всё
@Type(value = SalaryType.class)
private Salary salary;
< /code>
Если Serializable удаляется из определения класса заработной платы, то запрос работает нормально. К сожалению, я не могу удалить сериализуемый интерфейс из определения класса, поэтому мне нужно оправдать другое решение. Я буду делиться здесь. < /P>
таблица дБ < /p>
CREATE TABLE t_jd_office_employee (
id varchar(40) NOT NULL PRIMARY KEY,
salary varchar
);
< /code>
Entity < /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>
Зарплата < /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>
Ошибка < /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.6.8.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>
Tuple 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 i o . 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)
Подробнее здесь: https://stackoverflow.com/questions/794 ... a-usertype