【问题标题】:Servlet not working in EJB Project in Intellij IDEAServlet 在 Intellij IDEA 的 EJB 项目中不起作用
【发布时间】:2015-08-30 03:37:44
【问题描述】:

我是 Intellij IDEA 的新手,我在其中创建了一个测试 Java EE 项目。首先在 New Project 中我选择了 Java Enterprise (Java JDK 7) 并添加了额外的库:

  • Web 应用程序 (3.1)
  • EJB:企业 Java Beans(3.2 没有 ejb-jar.xml)
  • Java EE 应用程序 (Java EE 7)

应用创建成功。然后我创建了无状态 Java 类:

package test.server;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;


@Stateless(name = "TestClientEJB")
@LocalBean
public class TestClientBean {
    public TestClientBean() {
    }

    public String getHello() {
        return "Hello EJB from Intellij";
    }

}

在它创建 Servlet 之后:

package test.client;

import test.server.TestClientBean;
import javax.ejb.EJB;
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 = "ClientServlet")
public class ClientServlet extends HttpServlet {

    @EJB
    TestClientBean testClientBean;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        out.print(testClientBean.getHello());
    }
}

作为应用服务器,我使用 WildFly 8.1 Final。我用 EAR Artifact 设置它,它给出的 URL 为:

http://localhost:8080/EJBTestWeb/

当我在浏览器中运行它时,它会显示我在 index.jsp 中写的内容。但是当我写类型时

http://localhost:8080/EJBTestWeb/ClientServlet

它向我显示 Not Found 消息。问题出在哪里?我下载的所有需要​​的罐子

【问题讨论】:

    标签: intellij-idea ejb wildfly ear java-ee-7


    【解决方案1】:

    当我在 Servlet 中更改时它起作用了

    @WebServlet(name = "ClientServlet")
    

    @WebServlet("/ClientServlet")
    

    【讨论】:

      猜你喜欢
      • 2016-01-07
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      • 2011-06-30
      相关资源
      最近更新 更多