如何在Tomee web服务器上运行gradle web项目?
我在一个网站上工作。这是我的gradle文件:如何在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
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")];