我有以下问题--我用com.bmuschko.tomcat
插件创建了一个名为“Spring”的简单Gradle项目。但是当我运行Gradle build和TomcatRun
任务并输入http://localhost:8080/spring时,我得到404错误。当然,在构建和服务器启动期间,我没有收到任何错误消息。有Build.Gradle:
apply plugin: 'com.bmuschko.tomcat'
apply plugin: 'java'
apply plugin: 'war'
group 'training'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
def tomcatVersion = '9.0.17'
tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
"org.apache.tomcat.embed:tomcat-embed-logging-juli:9.0.0.M6",
"org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
}
tomcat {
httpProtocol = 'org.apache.coyote.http11.Http11Nio2Protocol'
ajpProtocol = 'org.apache.coyote.ajp.AjpNio2Protocol'
}
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.bmuschko:gradle-tomcat-plugin:2.5'
}
}
我还有一个名为hello.jsp
的jsp文件放在src/main/webapp
中:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello Gradle Web App</title>
</head>
<body>
<jsp:useBean id="greeting" class="test.Test"/>
<h3>${greeting.hello}</h3>
</body>
</html>
和test.java
文件放在src/main/java/test
中:
package test;
public class Test {
public String getHello() {
return "Hello Spring!";
}
}
如您所见,服务器似乎正在成功启动:
17:46:12: Executing tasks 'build tomcatRun'...
> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :war UP-TO-DATE
> Task :assemble UP-TO-DATE
> Task :compileTestJava NO-SOURCE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :test NO-SOURCE
> Task :check UP-TO-DATE
> Task :build UP-TO-DATE
> Task :tomcatRun
Started Tomcat Server
The Server is running at http://localhost:8080/spring
正如注释中指出的,您的JSP文件是namehello.JSP
。
Tomcat文档(conf/web.xml
)说明如下:
========================默认欢迎文件列表========================================
当请求URI引用目录时,默认servlet在该目录中查找“欢迎文件”,如果存在,则查找相应的资源URI以供显示。如果不存在欢迎文件,则默认servlet要么提供目录列表(有关如何自定义的内容,请参见默认servlet配置),要么返回404状态,这取决于listings设置的值。
默认欢迎文件为:
那这是什么意思呢?
当您将浏览器指向http://localhost:8080/spring时,请求URL中没有列出特定的页面。Tomcat以及其他web服务器仍然会尝试交付一个页面,以便浏览器能够显示一些东西。默认情况下,如果URL中未指定页面,则传递默认主页。由于您的文件名为hello.jsp
,因此它不被认为是一个受欢迎的文件,因此Tomcat会传递404错误。
您可以通过以下方法解决此问题
hello.jsp
重命名为index.jsp
web.xml
中自定义welcome-file-list
以包含hello.jsp
话虽如此,问题并不在于com.bmuschko.tomcat
插件,也不在于您的构建文件。
问题内容: 我正在使用sqlite4java启动一个简单的Java测试项目,并使用Java进行构建。 我可以轻松地下载核心sqlite4java库,但是我不确定哪种最好的方式(任意!)来获取下载本地库并将它们放在正确位置的好处。 这是我的build.gradle文件: 但是,当我运行一个简单的测试时,我得到: (我是从IntelliJ内部构建的,但是我正在使用gradle构建选项-因此,我认为运行
多项目Gradle构建中的子项目如何使用根项目的buildSrc文件夹中定义的Gradle插件? 我基本上有: 设置。格拉德尔 buildSrc/src/main/groovy/com/example/conventions/JavaConventionsPlugin。groovy buildSrc/build。格拉德尔 通用/构建。格拉德尔 我正在尝试在项目中应用插件: 但是上面说 id为“co
我有以下多项目分级建设: 3个子项目分级文件中的每一个目前都非常简单: 以下是我想要达到的目标: 当我从父目录运行时,我希望所有三个子项目都使用0.1.5版本生成;因此,、和。但是,当前我的构建已经执行此操作... 如果客户端和共享JAR成功构建,我还希望将它们发布到我的私有Artifactory repo中。(我不希望发布服务器JAR)。 我的问题是:如何将这个片段添加到我的项目中,这样从父目录
设置.分级 Build.Gradle 编辑:要复制,只需克隆repo https://github.com/kic/stackoverflow/tree/master/gradleproblem并在bar目录中尝试
我有一个多项目的gradle构建,其中一个子项目是应用Artifactory插件(版本4.2.0),并配置contextUrl和resolve repoKey。 它设置一个简单的配置和依赖项,然后有一个复制任务来检索依赖项作为zip文件并将其解压缩到目录中。 然而,当复制任务运行时,我得到下面的错误。我做错了什么?这是Artifactory插件或gradle的问题,还是。。。? 问题似乎与该项目是