gpt4 book ai didi

java - 如何为 JBoss AS 7.1 托管的 JSF2 应用程序设置 Gradle 构建?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:20 25 4
gpt4 key购买 nike

此时我有一个 build.gradle 文件成功编译和测试(使用 JUnit4)一个非常非常简单的 java 项目。

我的下一步是向此构建添加 JSF2 支持(以便拥有 Web JSF2 应用程序)。我的想法是在我的本地 JBoss 7.1 容器中托管应用程序。现在事情对我来说变得有点模糊。

我所做的是通过添加一些依赖项来为我的 buid 添加 JSF2 支持,所以 dependencies block 现在是这样的:

dependencies {
compile 'org.jboss.weld.se:weld-se-core:'+weldVersion
compile 'br.gov.frameworkdemoiselle:demoiselle-core:'+demoiselleVersion
compile 'br.gov.frameworkdemoiselle:demoiselle-jsf:'+demoiselleVersion

runtime 'javax.servlet:javax.servlet-api:3.1.0'
runtime 'javax.enterprise:cdi-api:1.0-SP1'
runtime 'org.jboss.weld.servlet:weld-servlet:'+weldVersion
runtime 'com.sun.faces:jsf-api:2.2.8-02'
runtime 'org.slf4j:slf4j-log4j12:1.7.7'

testCompile 'junit:junit:4.11'
testCompile 'org.jboss.arquillian.junit:arquillian-junit-container:'+arquillianVersion
testCompile 'br.gov.frameworkdemoiselle.component:demoiselle-junit:2.3.1'
}

我注意到的第一件奇怪的事情是,在使用 Gradle 刷新项目后(通过使用 Gradle > Refresh All 菜单),JBoss 无法看到它。我注意到(似乎)Gradle 禁用了项目中的方面。如果我手动激活 facets 并将运行时设置为 JBoss 7.1,那么我将能够将它添加到 JBoss(但我不想再手动执行此操作)。

将它添加到 JBoss 后,我可以运行服务器,并且日志显示对应于我的 Web 应用程序的模块已由 JBoss 正确加载,但是当我在浏览器中键入它的 url 时,服务器响应 HTTP 状态 404。

src/main/webapp 中,我有一个简单的 index.html 文件(如下所示),所以我期望的只是在浏览器中看到它的内容,但这并没有发生。

<html>
<body>
<h1>Hello world!</h1>
</body>
</html>

我错过了什么?

最佳答案

经过一番研究,我终于明白事情要简单得多。我想不明白的是我使用了错误的 Gradle 插件。我必须用 eclipse-wtp 替换 eclipse 插件,然后指定我想在我的应用程序中使用哪些方面和运行时。

最终的build.gradle文件如下:

apply plugin: 'java'
apply plugin: 'eclipse-wtp' // The correct plug-in!
apply plugin: 'application'
apply plugin: 'war'

sourceCompatibility = 1.7
targetCompatibility = 1.7

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

def hibernateVersion = "4.3.7.Final"
def weldVersion = "1.1.27.Final"//"2.2.7.Final" Demoiselle 2.4.1 não é compatível com Weld 2
def demoiselleVersion = "2.4.1"
def arquillianVersion = "1.1.5.Final"

repositories {
mavenLocal()
mavenCentral()
}

dependencies {
runtime 'javax.servlet:javax.servlet-api:3.1.0'
runtime 'javax.enterprise:cdi-api:1.0-SP1'
runtime 'org.jboss:jandex:1.2.2.Final'
}

eclipse {
wtp {
facet {
facet name: "java", version: "1.7" // Java version
facet name: "jst.web", version: "3.0" // Dynamic Web Application
facet name: "jst.jsf", version: "2.2" // Java Server Faces
facet name: "wst.jsdt.web", version: "1.0" // JavaScript
}
}
}

task wrapper(type: Wrapper) {
gradleVersion = '2.2.1'
}

希望这对其他人有帮助!

关于java - 如何为 JBoss AS 7.1 托管的 JSF2 应用程序设置 Gradle 构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27318254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com