繁体   English   中英

如何使用Maven的tomcat插件正确启动我的介绍性Web应用程序?

[英]How do I properly launch my introductory web application using maven's tomcat plugin?

我试图使用maven编写一个简单的JSP Web应用程序进行构建管理。 我的目录结构当前看起来像这样(但是我已经尝试了许多其他配置,但没有一个起作用):

main
 `-- resources
 |-- webapp
 |    |-- WEB-INF
 |    |    `--web.xml
 |    |-- doLogin.jsp
 |    `-- index.jsp
 `-- java
      `-- com
           `-- wug
                `-- authen2cator
                     `-- LoginReq.java

index.jsp包含的数据点的简单形式usernamepassword ,并twofactor指向dologin.jsp有(此页似乎很好地工作)。

doLogin.jsp引用一个bean并将其推入:

<jsp:useBean id="user" class="com.wug.authen2cator.LoginReq" scope="session" />
<jsp:setProperty name="user" property="*"/> 

LoginReq.java包含以下骨架类:

package com.wug.authen2cator;

class LoginReq
{
    String username;
    String password;
    String twofactor;

    public LoginReq() {}

    public void setUsername(String n) { username = n; }
    public void setPassword(String n) { password = n; }
    public void setTwofactor(String n) { twofactor = n; }

    public String getUsername() { return username; }
    public String getPassword() { return password; }
    public String getTwofactor() { return twofactor; }
}

我正在尝试使用mvn tomcat:run启动它mvn tomcat:run构建后mvn tomcat:run index.jsp可以正常工作,但是doLogin.jsp抛出500错误,并给出了以以下内容开头的堆栈跟踪:

org.apache.jasper.JasperException: /doLogin.jsp(1,1) The value for the useBean class attribute com.wug.authen2cator.LoginReq is invalid.
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
    at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1229)
    at org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1178)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)

我怀疑问题出在tomcat环境上,但这是我第一次尝试使用maven,但我发现它的文档有些欠缺(特别是用于不同类型项目的目录结构是任意的,且文档记录不佳)对于许多项目类型)

我尝试将LoginReq从其包装中取出,并且尝试将其移至各个位置。 如果将它放在.../main/java (它在生成项目时不存在,我必须创建它)似乎可以编译,但是如果将它放在... / main / webapp / WEB-中,则不会编译INF,我已阅读的大多数文档都建议将其放在此处。

我的怀疑是tomcat无法找到LoginReq.class ,并且我发现的maven命令的组合似乎都没有使用构建过程中生成的正确WAR文件实际启动了tomcat。 我没有明智的想法,文档也无济于事。 有人可以指出我正确的方向吗?

必须将LoginReq类声明为public。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM