当我尝试访问 localhost:61687/hello(或类似的)处的 servlet 时,出现 404 错误。
细节:
服务器本身可以正常工作,因为 http://localhost:61687/ 上会出现一个页面,确认了这一点:
端口61687,因为 8080 忙。
使用 gradle 命令收集 .war 文件
./gradle war
使用以下命令从控制台启动服务器:
./asadmin start-domain newDomain1
对于部署,我使用了以下命令
./asadmin deploy --force /Users/dima/Documents/projects/Java/JavaEE/build/libs/JavaEE-1.0-SNAPSHOT.war
Servlet 代码:
package servlets;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name="firstservlet", urlPatterns = "/hello")
public class servlet1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter printWriter = resp.getWriter();
printWriter.write("Hello!");
printWriter.close();
}
}
构建.gradle 文件:
plugins {
id 'java'
id 'war'
}
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
compileOnly group: 'org.glassfish', name: 'javax.servlet', version: '3.2-b06'
}
test {
useJUnitPlatform()
}
我如何尝试修复错误
我尝试了地址http://localhost:61687/JavaEE-1.0-SNAPSHOT/hello - 情况没有改变。
我尝试使用不带包的 servlet 类
尝试使用带有一个参数的注释: @WebServlet("/hello")