如何在Tomee web服务器上运行gradle web项目?

如何在Tomee web服务器上运行gradle web项目?,gradle,jakarta-ee,netbeans,apache-tomee,Gradle,Jakarta Ee,Netbeans,Apache Tomee,我在一个网站上工作。这是我的gradle文件: buildscript{ repositories{ mavenCentral(); jcenter(); } dependencies{ classpath("org.hibernate:hibernate-gradle-plugin:5.4.2.Final"); classpath("org.apache.tomee.gradle:tomee-embedde

我在一个网站上工作。这是我的gradle文件:

buildscript{
    repositories{
        mavenCentral();
        jcenter();
    }
    dependencies{
        classpath("org.hibernate:hibernate-gradle-plugin:5.4.2.Final");
        classpath("org.apache.tomee.gradle:tomee-embedded:8.0.0");
    }
}

plugins{
    id("java");
    id("war");
    id("org.hibernate.gradle.tools") version("1.2.5");
}
apply plugin: "org.hibernate.orm";
apply plugin: "org.apache.tomee.tomee-embedded";

allprojects{
    repositories{
        mavenCentral();
        jcenter();
    }
}
version = "1.0";
sourceCompatibility = "1.8";
targetCompatibility = "1.8";

tasks.withType(JavaCompile){
    options.encoding = "UTF-8";
}

sourceSets {
    main {
        resources {
            srcDirs = [
                'src/main/webapp',
                'src/main/resources'
            ]
        }
    }
}

dependencies{
    def jsfVersion = "2.2.20";
    def hibernateValidatorVersion = "6.0.17.Final";
    def prettyfacesVersion = "3.4.2.Final";

    // JavaEE Components
    providedCompile("javax:javaee-api:8.0.1");

    // Servlet EE Components
    providedCompile("javax.servlet:javax.servlet-api:4.0.1");

    compile("javax.validation:validation-api:2.0.1.Final");

    // Expression Language Components

    compile("org.glassfish:javax.el:3.0.1-b11");

    // Mysql Components
    compile("mysql:mysql-connector-java:8.0.17");

    // Hibernate Components
    compile(
        "org.hibernate:hibernate-core:6.0.0.Alpha2",
        "org.hibernate:hibernate-entitymanager:5.4.4.Final",
        "org.hibernate.validator:hibernate-validator:$hibernateValidatorVersion",
        "org.hibernate.validator:hibernate-validator-annotation-processor:$hibernateValidatorVersion",
        "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final",
        "org.hibernate:hibernate-ehcache:5.4.4.Final"
    );

    // JSF Components
    compile(
        "com.sun.faces:jsf-api:$jsfVersion",
        "com.sun.faces:jsf-impl:$jsfVersion"
    );

    // Prettyfaces Components
    compile(
        "org.ocpsoft.rewrite:rewrite-servlet:$prettyfacesVersion",
        "org.ocpsoft.rewrite:rewrite-config-prettyfaces:$prettyfacesVersion"
    );

    // Log4j Components
    compile("log4j:log4j:1.2.17");

    // ICU4j Components
    compile("com.ibm.icu:icu4j:64.2");

    // junit Components
    compile("junit:junit:4.12");
    testCompile("junit:junit:4.12");
    testImplementation("junit:junit:4.12");
}

war{
    archiveName = 'YeJayeKhoob.com.war'
    from("${projectDir}/src/main/webapp/");
    webXml = file("${projectDir}/src/main/webapp/WEB-INF/Web.xml");
}

hibernate{
    enhance{
        enableLazyInitialization           = true;
        enableDirtyTracking                = true;
        enableExtendedEnhancement = false;
    }
}

test{
    useJUnit()
    maxHeapSize = '1G'
}

tasks.withType(JavaExec){
    if(System.getProperty('DEBUG', 'false') == 'true'){
        jvmArgs '-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005'
    }
}

task explodedWar(type: Sync){
    into    "${buildDir}/YJKWebApp" 
    with   war
} 
war.dependsOn explodedWar

def tomeeEmbedded = extensions.getByName("tomee-embedded");
tomeeEmbedded.tomeeVersion  = "8.0.0";
tomeeEmbedded.host = "localhost";
tomeeEmbedded.httpPort = 8081;
tomeeEmbedded.keepServerXmlAsThis = true;
tomeeEmbedded.skipDefaultRepository = true; // don't use central to retrieve tomee
//tomeeEmbedded.docBase = file("${buildDir}/YJKWebApp");
//tomeeEmbedded.modules=[project.file("${buildDir}/classes"), project.file("${buildDir}/resources")];
我使用tomee embedded插件,但我无法在netbeans中运行我的项目。相反,我使用命令行。但当我使用gradle tomee embedded-i运行gradle时,会出现以下错误:

    Execution failed for task ':tomee-embedded'.
> Could not resolve all files for configuration ':tomee-embedded'.
   > Could not find org.apache.tomee.patch:bval-jsr:2.0.2-69c36fa8-1.
     Searched in the following locations:
       - file:/C:/Users/Arash/.m2/repository/org/apache/tomee/patch/bval-jsr/2.0.2-69c36fa8-1/bval-jsr-2.0.2-69c36fa8-1.pom
       - file:/C:/Users/Arash/.m2/repository/org/apache/tomee/patch/bval-jsr/2.0.2-69c36fa8-1/bval-jsr-2.0.2-69c36fa8-1.jar
       - https://repo.maven.apache.org/maven2/org/apache/tomee/patch/bval-jsr/2.0.2-69c36fa8-1/bval-jsr-2.0.2-69c36fa8-1.pom
       - https://repo.maven.apache.org/maven2/org/apache/tomee/patch/bval-jsr/2.0.2-69c36fa8-1/bval-jsr-2.0.2-69c36fa8-1.jar
       - https://jcenter.bintray.com/org/apache/tomee/patch/bval-jsr/2.0.2-69c36fa8-1/bval-jsr-2.0.2-69c36fa8-1.pom
       - https://jcenter.bintray.com/org/apache/tomee/patch/bval-jsr/2.0.2-69c36fa8-1/bval-jsr-2.0.2-69c36fa8-1.jar
     Required by:
         project : > org.apache.tomee:tomee-embedded:8.0.0-M3 > org.apache.tomee:openejb-core:8.0.0-M3
我试着像这样配置Tomee:

def tomeeEmbedded = extensions.getByName('tomee-embedded')
tomeeEmbedded.skipDefaultRepository  = true
但我又犯了错误。有什么问题吗?以及如何在Netbeans中运行我的项目

Web服务器:ApacheTome Plus v8.0.0-M1

IDE:apachenetbeans11

渐变版本:5.4.1

之后 排除bval-jsr并添加org.apache.bval:bval-jsr所述,Netbeans向我显示了一个警告:(我不知道如何在IDE中复制警告)

但当我运行gradle-tomee-embedded--stacktrace命令时,我得到了以下错误:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':tomee-embedded'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:148)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:145)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:138)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
        at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.api.GradleException
        at org.apache.tomee.gradle.embedded.TomEEEmbeddedTask.doRun(TomEEEmbeddedTask.java:349)
        at org.apache.tomee.gradle.embedded.TomEEEmbeddedTask.runTomEEEmbedded(TomEEEmbeddedTask.java:205)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:48)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:702)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:669)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:401)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:390)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:373)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:79)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:210)
        at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$1(ExecuteStep.java:33)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
        at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
        at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
        at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
        at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
        at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
        at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
        at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
        at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
        at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
        at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:117)
        ... 35 more
Caused by: java.lang.reflect.InvocationTargetException
        at org.apache.tomee.gradle.embedded.TomEEEmbeddedTask.doRun(TomEEEmbeddedTask.java:345)
        ... 88 more
Caused by: java.lang.IllegalStateException: javax.validation.ValidationException: HV000183: Unable to initialize 'javax.el.ExpressionFactory'. Check that you have the EL dependencies on the classpath, or use ParameterMessageInterpolator instead
        at org.apache.tomee.embedded.Container.deploy(Container.java:352)
        at org.apache.tomee.embedded.Container.deployPathsAsWebapp(Container.java:230)
        at org.apache.tomee.embedded.Container.deployClasspathAsWebApp(Container.java:195)
        at org.apache.tomee.embedded.Container.deployClasspathAsWebApp(Container.java:171)
        ... 89 more
Caused by: javax.validation.ValidationException: HV000183: Unable to initialize 'javax.el.ExpressionFactory'. Check that you have the EL dependencies on the classpath, or use ParameterMessageInterpolator instead
        at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.buildExpressionFactory(ResourceBundleMessageInterpolator.java:123)
        at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.<init>(ResourceBundleMessageInterpolator.java:47)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.getDefaultMessageInterpolator(ConfigurationImpl.java:474)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.getDefaultMessageInterpolatorConfiguredWithClassLoader(ConfigurationImpl.java:650)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.getMessageInterpolator(ConfigurationImpl.java:397)
        at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.<init>(ValidatorFactoryImpl.java:183)
        at org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:38)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:364)
        at org.apache.openejb.assembler.classic.ValidatorBuilder.buildFactory(ValidatorBuilder.java:118)
        at org.apache.openejb.assembler.classic.ValidatorBuilder.buildFactory(ValidatorBuilder.java:71)
        at org.apache.openejb.assembler.classic.LazyValidatorFactory.ensureDelegate(LazyValidatorFactory.java:54)
        at org.apache.openejb.assembler.classic.LazyValidatorFactory.getFactory(LazyValidatorFactory.java:65)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:977)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:758)
        at org.apache.tomee.embedded.Container.deploy(Container.java:350)
        ... 92 more
正如所说,Tomee Embedded运行时没有错误,但没有完成。数不胜数:

.
.
.
Loaded [0] org.ocpsoft.rewrite.spi.RuleCacheProvider []
Rewrite 3.4.2.Final initialized.
Deployed Application(path=)
TomEE embedded started on localhost:8081
<-------------> 0% EXECUTING [6m 24s]
> :tomee-embedded
结果是一样的。

怎么办 步骤1:
gradlew构建
第二步:
gradle-tomee-embedded-i

为什么 创建build.gradle文件后,第一个任务是运行

gradlew build
命令,以便下载所需的依赖项和插件,从而 请运行
gradlew build
,然后运行
TomEE
命令

这应该行得通


如果使用
windows
,则命令可能会有所不同
gradlew.bat build
或对于linux,命令将与上述
gradlew build
相同M3 bval依赖项错误,请尝试将其从tomee embedded中排除,并将其替换为最后一个oeg.apache.bval:bval jsr one

谢谢catalystOne。我以前试过,但错误存在,我纠正了我提到的错误。这是不对的。任务配置中的Force-tomeervision=xxxx(或tomeeembedded-config块)。错误在于默认版本是从maven元数据加载的,但是模块重命名在代码中没有受到影响,请在github上使用tomee PR修复它,下面是感谢Romain的一行,但是我怎么做呢?似乎TomEE Embedded需要bval jsr:2.0.2-69c36fa8-1,但该版本不存在。在gradle依赖项中,直接在gradle脚本中添加排除项。Tomee依赖于bval jsr,apache.bval版本也可以很好地工作,并且尊重规范(与分叉版本相比)。谢谢Romain。我排除了bval jsr,但得到了nullPointerException。可能共享整个堆栈,但您是否同时添加了org.apache.bval:bval jsr?谢谢@Romain,我更新了我的问题。渐变生成文件已更改。
.
.
.
Loaded [0] org.ocpsoft.rewrite.spi.RuleCacheProvider []
Rewrite 3.4.2.Final initialized.
Deployed Application(path=)
TomEE embedded started on localhost:8081
<-------------> 0% EXECUTING [6m 24s]
> :tomee-embedded
tomeeEmbedded.modules=[project.file("${buildDir}/classes"), project.file("${buildDir}/resources")];