【发布时间】:2016-07-27 15:44:46
【问题描述】:
使用我的第一个嵌入式 tomcat 应用程序,所以这可能是一个简单的问题。
我创建了一个 servlet,我想用 Java 以编程方式添加到 Tomcat。我的 Driver 类如下所示:
String contextPath = "/";
String appBase = ".";
Tomcat tomcat = new Tomcat();
tomcat.setPort(Integer.valueOf(port.orElse("8080") ));
Context ctx = tomcat.addContext(contextPath, appBase);
Tomcat.addServlet(ctx, "HelloWorldServlet", new HelloWorldServlet());
ctx.addServletMapping("/*", "HelloWorldServlet");
tomcat.start();
tomcat.getServer().await();
我的 servlet 有以下定义。
@WebServlet(
name = "HelloWorldServlet",
urlPatterns = {"/helloWorld"}
)
当我尝试运行它时,它告诉我我有一个
java.lang.illegalArgumentException: Main resource set specified [.......\target\tomcat.8080\webapps\.] is not valid.
我是否正确添加了我的 servlet?基本上,我希望能够访问 localhost:8080/helloWorld 并让它触发我的 servlet。
【问题讨论】:
-
您的 URL 缺少上下文。它应该类似于
http://localhost:8080/yourWebApp/helloWorld -
如何添加?而且,contextPath 和 appBase 到底应该做什么?我假设不知何故,我需要为 Tomcat 提供我的 servlet 类的路径,对吗?