Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Quarkus测试在本机中失败,因为未找到DayOfWeek_Java_Hibernate_Quarkus - Fatal编程技术网

Java Quarkus测试在本机中失败,因为未找到DayOfWeek

Java Quarkus测试在本机中失败,因为未找到DayOfWeek,java,hibernate,quarkus,Java,Hibernate,Quarkus,我创建了一个简单的quarkus(版本0.21.2)应用程序,它使用hibernate orm和panache将实体保存到h2数据库。该实体包括一个element集合,共DaysOfWeek。我还创建了一些测试,以确保凝乳的工作。这些测试都可以正常工作,但当我在本地运行它们时,会出现以下异常: Exception in thread "main" java.lang.RuntimeException: Failed to start quarkus at io.quarkus.runne

我创建了一个简单的quarkus(版本0.21.2)应用程序,它使用hibernate orm和panache将实体保存到h2数据库。该实体包括一个
element集合
,共
DaysOfWeek
。我还创建了一些测试,以确保凝乳的工作。这些测试都可以正常工作,但当我在本地运行它们时,会出现以下异常:

Exception in thread "main" java.lang.RuntimeException: Failed to start quarkus
    at io.quarkus.runner.ApplicationImpl1.doStart(ApplicationImpl1.zig:126)
    at io.quarkus.runtime.Application.start(Application.java:91)
    at io.quarkus.runtime.Application.run(Application.java:204)
    at io.quarkus.runner.GeneratedMain.main(GeneratedMain.zig:34)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
    at io.quarkus.hibernate.orm.runtime.boot.FastBootEntityManagerFactoryBuilder.persistenceException(FastBootEntityManagerFactoryBuilder.java:113)
    at io.quarkus.hibernate.orm.runtime.boot.FastBootEntityManagerFactoryBuilder.build(FastBootEntityManagerFactoryBuilder.java:67)
    at io.quarkus.hibernate.orm.runtime.FastBootHibernatePersistenceProvider.createEntityManagerFactory(FastBootHibernatePersistenceProvider.java:54)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
    at io.quarkus.hibernate.orm.runtime.JPAConfig$LazyPersistenceUnit.get(JPAConfig.java:109)
    at io.quarkus.hibernate.orm.runtime.JPAConfig.startAll(JPAConfig.java:57)
    at io.quarkus.hibernate.orm.runtime.HibernateOrmRecorder.startAllPersistenceUnits(HibernateOrmRecorder.java:77)
    at io.quarkus.deployment.steps.HibernateOrmProcessor$startPersistenceUnits19.deploy_0(HibernateOrmProcessor$startPersistenceUnits19.zig:51)
    at io.quarkus.deployment.steps.HibernateOrmProcessor$startPersistenceUnits19.deploy(HibernateOrmProcessor$startPersistenceUnits19.zig:70)
    at io.quarkus.runner.ApplicationImpl1.doStart(ApplicationImpl1.zig:90)
    ... 3 more
Caused by: org.hibernate.MappingException: Could not create DynamicParameterizedType for type: org.hibernate.type.EnumType
    at org.hibernate.mapping.SimpleValue.createParameterImpl(SimpleValue.java:768)
    at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:470)
    at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:455)
    at org.hibernate.mapping.Collection.validate(Collection.java:315)
    at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:347)
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:461)
    at io.quarkus.hibernate.orm.runtime.boot.FastBootEntityManagerFactoryBuilder.build(FastBootEntityManagerFactoryBuilder.java:65)
    ... 12 more
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [java.time.DayOfWeek]
    at io.quarkus.hibernate.orm.runtime.service.FlatClassLoaderService.classForName(FlatClassLoaderService.java:39)
    at org.hibernate.mapping.SimpleValue.createParameterImpl(SimpleValue.java:755)
    ... 18 more
Caused by: java.lang.ClassNotFoundException: java.time.DayOfWeek
    at com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:60)
    at java.lang.Class.forName(DynamicHub.java:1174)
    at io.quarkus.hibernate.orm.runtime.service.FlatClassLoaderService.classForName(FlatClassLoaderService.java:37)
    ... 19 more
我的实体如下所示:

import com.fasterxml.jackson.annotation.JsonCreator;
导入com.fasterxml.jackson.annotation.JsonIgnoreProperties;
导入com.fasterxml.jackson.annotation.JsonProperty;
导入io.quarkus.hibernate.orm.panache.PanacheEntityBase;
导入org.hibernate.annotations.Cascade;
导入org.hibernate.annotations.GenericGenerator;
导入javax.persistence.ElementCollection;
导入javax.persistence.Entity;
导入javax.persistence.GeneratedValue;
导入javax.persistence.Id;
导入javax.validation.constraints.NotNull;
导入java.time.DayOfWeek;
导入java.time.LocalTime;
导入java.util.*;
导入静态org.hibernate.annotations.CascadeType.ALL;
@实体
@JsonIgnoreProperties(ignoreUnknown=true)
公共类OpeningTimes扩展了PanacheEntityBase{
@身份证
@GeneratedValue(generator=“UUID”)
@GenericGenerator(name=“UUID”,strategy=“org.hibernate.id.UUIDGenerator”)
私有UUID;
@NotNull
私有字符串名称;
私有字符串描述;
私有本地时间;
私有本地时间到时间;
@元素集合
@级联(值={ALL})
每周私人收集日;
/**
*请勿使用!仅适用于JPA!
*/
OpeningTimes(){
超级();
name=“”;
}
@JsonCreator
公开时间(
@JsonProperty(“名称”)字符串名称,
@JsonProperty(“timeFrom”)LocalTime timeFrom,
@JsonProperty(“timeTo”)LocalTime timeTo,
@JsonProperty(“daysOfWeek”)集合(daysOfWeek){
this.name=名称;
this.timeFrom=timeFrom;
this.timeTo=timeTo;
this.daysOfWeek=新哈希集(daysOfWeek);
}
公共打开时间(字符串名称、LocalTime from、LocalTime to、DayOfWeek…daysOfWeek){
这(名称、发件人、收件人、新ArrayList(Arrays.asList(daysOfWeek));
}
公共LocalTime getTimeFrom(){
返回时间;
}
public void setTimeFrom(LocalTime timeFrom){
this.timeFrom=timeFrom;
}
公共本地时间getTimeTo(){
返回时间到;
}
public void setTimeTo(LocalTime timeTo){
this.timeTo=timeTo;
}
公共集合getDaysOfWeek(){
每周返回一天;
}
公共作废setDaysOfWeek(setDaysOfWeek){
this.daysOfWeek=daysOfWeek;
}
公共UUID getId(){
返回id;
}
公共无效设置id(UUID id){
this.id=id;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getDescription(){
返回说明;
}
公共void集合描述(字符串描述){
this.description=描述;
}
@凌驾
公共布尔等于(对象o){
如果(this==o)返回true;
如果(!(o OpeningTimes实例))返回false;
OpeningTimes,即=(OpeningTimes)o;
返回Objects.equals(getId(),that.getId())
&&Objects.equals(getName(),that.getName())
&&Objects.equals(getDescription(),that.getDescription())
&&Objects.equals(getTimeFrom(),that.getTimeFrom())
&&Objects.equals(getTimeTo(),that.getTimeTo())
&&Objects.equals(getDaysOfWeek(),that.getDaysOfWeek());
}
@凌驾
公共int hashCode(){
返回Objects.hash(
getId()、getName()、getDescription()、getTimeFrom()、getTimeTo()、getDaysOfWeek();
}
@凌驾
公共字符串toString(){
返回“OpeningTimes{”
+“id=”
+身份证
+“,名称=”
+名字
+ '\''
+,description=''
+描述
+ '\''
+“,timeFrom=”
+时间
+“,timeTo=”
+时间到了
+“,daysOfWeek=”
+星期几
+ '}';
}
公共无效合并(OpeningTimes OpeningTimes){
this.name=openingTimes.name;
this.description=openingTimes.description;
this.timeFrom=openingTimes.timeFrom;
this.timeTo=openingTimes.timeTo;
this.daysOfWeek=openingTimes.daysOfWeek;
}
}
这是我的测试:

导入io.quarkus.hibernate.orm.panache.PanacheEntityBase;
导入io.quarkus.test.common.QuarkUstResource;
导入io.quarkus.test.h2.h2数据库TestResource;
导入io.quarkus.test.junit.QuarkusTest;
导入io.restassured.http.ContentType;
导入io.restassured.mapper.ObjectMapperType;
导入io.restasured.mapper.TypeRef;
导入io.restassured.response.response;
导入org.junit.jupiter.api.AfterEach;
导入org.junit.jupiter.api.Test;
导入org.slf4j.Logger;
导入org.slf4j.LoggerFactory;
导入javax.transaction.Transactional;
导入java.time.DayOfWeek;
导入java.time.LocalTime;
导入java.util.array;
导入java.util.Collection;
导入java.util.List;
导入静态io.restassured.restassured.given;
导入静态org.hamcrest.CoreMatchers.equalTo;
导入静态org.hamcrest.CoreMatchers.is;
导入静态org.hamcrest.matcherasert.assertThat;
@夸克斯特
@QuarkusTestResource(H2DatabaseTestResource.class)
类OpeningResourceTest{
私有静态最终记录器LOG=LoggerFactory.getLogger(openingResourceTest.class);
@试验
void testSaveOpening(){
开放时间开放=
新开放时间(
“测试开放”,LocalTime.MIN,LocalTime.NOON,DayOfWeek.周一,DayOfWeek.周四);
回应=
给定()
.when()
.contentType(contentType.JSON)
.body(打开,ObjectMapperType.JACKSON_2)
.post(“/服务/活动/空缺”);
LOG.debug(response.andReturn().body().prettyPrint());
OpeningTimes responseObject=response.then().statusCode(200.extract().as(OpeningTimes.class));
//