我有Java EE应用程序,它有一个WAR文件和一个EJB文件。 WAR文件包含我的jsps / html,我的EJB包含我的servlets / beans和EJB。我尝试在我的一个jsp页面中调用我的servlet,但它无法找到它。我正在寻找的文件是Authenticate。它位于我的EJB文件中,因此我认为它的路径是
action="../../EJBShoppingCart-ejb/build/classes/Servlet/Authenticate
我玩过URL,通过取走构建或类以及其他一些方法来修改它....我的servlet有@WebServlet(name =“Authenticate”, urlPatterns = {“/ Authenticate”})注释。
我知道我可以将我的所有文件从我的EJB文件传输到我的WAR文件中,我认为这样可以解决问题。但有没有办法正确映射它?
答案 0 :(得分:1)
urlPatterns = {"/Authenticate"}
因此,它映射到/Authenticate
的网址格式。假设您的服务器在localhost:8080上运行且webapp上下文名称为myapp
且/WEB-INF/web.xml
符合Servlet 3.0规范,那么您可以通过http://localhost:8080/myapp/Authenticate
我只是不完全确定EJB中的@WebServlet
类是否会被servletcontainer定位和加载。 Servlet通常进入WAR并最终进入/WEB-INF/classes
。在/WEB-INF/lib
中的JAR内部绝对是可能的,它只包含与Servlet 3.0兼容的/META-INF/web.xml