我已经尝试了3天来创建一个Java EE项目,它在一个项目中使用JSP,Servlet和EJB,因为我需要对此进行课程最终分配。
我们被指示使用JBOSS 4.2.3,这就是我尝试使用的。
我按如下方式设置了我的环境:
现在,应用程序编译,我得到index.jsp:http://localhost:8080/webWeb/
但是,如果我点击它会收到404错误,并提交给http://localhost:8080/webWeb/helloworld
我不知道还有什么可以尝试,我想我用Google搜索并阅读了几乎所有内容:( 这是项目档案的链接,这样你就可以(可能)测试我的项目,看看你是否能以某种方式解决这个问题......
https://www.dropbox.com/sh/9sma5vh7usy2h3p/AADA64KPyLH29iGz8OamWyNna
谢谢!
更新: 为方便起见,我的HelloWorldServlet.java代码:
package myservlets;
import mybeans.HelloWorldBean;
import javax.ejb.EJB;
import java.io.IOException;
@javax.servlet.annotation.WebServlet(name = "HelloWorldServlet", urlPatterns = "/helloworld")
public class HelloWorldServlet extends javax.servlet.http.HttpServlet {
@EJB
private HelloWorldBean helloWorldBean;
protected void doPost(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, IOException {
}
@Override
protected void doGet(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, IOException {
String hello=helloWorldBean.sayHello();
request.setAttribute("hello",hello);
request.getRequestDispatcher("hello.jsp").forward(request,response);
}
}
我觉得我真的必须补充一点,设置Java工作的这种极端困难让我专注于 CODING ,这就是我喜欢像PHP这样的东西的原因......我错了吗?
答案 0 :(得分:2)
问题是您正在使用与Servlet 2.5 / JSP 2.1一起使用的JBoss 4.2.3(如BalusC在此处所述:Servlet Spec for Jboss 4.2.3)。自Servlet 3.0起,支持使用@WebServlet
和注释。因此,您必须直接在web.xml文件中配置您的servlet。
请注意,servet 2.5也不支持EJB注入。