Топ контрибуторов
loading
loading
Знаете ли Вы, что

Вы можете подписаться на RSS ленту новых тестов сервиса Quizful, в том числе и отдельно по каждой категории

Лента обновлений
ссылка 12:40:06
Добавлен вопрос в тест ASP.NET - Средний уровень
ссылка Nov 19 20:18
Комментарий от newlist1999:
Хороший тест для проверки знаний, хотя довольно слож...
ссылка Nov 19 15:50
Комментарий от ceferovshen:
SELECT Top 1 ID,DateTime FROM Table1
order by ID de...
ссылка Nov 18 17:27
Комментарий от ardnya:
Можно с вами пообщаться в лс?
ссылка Nov 18 14:51
Комментарий от aaa211:
Суффиксный декремент/инкремент имеет более высокий приори...
Статистика

Тестов: 153, вопросов: 8596. Пройдено: 445726 / 2188061.

Пример создания EJB3 приложения с помощью Eclipse

head tail Статья
категория
Java EE
дата19.08.2009
авторfever-007
голосов10

Нам понадобится: предустановленная JDK 1.6, JBoss 5.1, Eclipse 3.4.2 – предполагается, что вы уже знаете как ими правильно пользоваться.

Существуют различные типы EJB-компонентов:

  • сессионные (Session Beans);
  • компоненты-сущности (Entity Beans);
  • компоненты, управляемые сообщениями (Message Driven Beans).

Сессионные компоненты делятся на два подвида:

  • сессионные компоненты без состояния (stateless session beans) – их мы и будем использовать в нашем примере, все остальное выходит за рамки этой статьи.
  • сессионные компоненты с состоянием (stateful session beans).

В Eclipse выбираем New -> Enterprise Application Project. Назовем наш проект Test, Target Runtime (JBoss 5.0), нажимаем Next. В следующем окошке жмем New Module и отмечаем 2 модуля: EJB and Web, а также отмечаем опцию Generate Deployment Descriptor. Готово, жмем Finish.

Далее переходим в наш проект. Создадим сначала интерфейс HelloWorldLocal : TestEJB -> New -> Interface.

package lesson;
@Local
public interface HelloWorldLocal {
    public String getMessage(String name);
}

Обратите внимание, в конце названия класса Local, так называть не обязательно, но так понятнее, в общем, на ваше усмотрение. В данном случае будем использовать Local, т.к. сервер у нас один, если их несколько, то надо использовать Remote. Добавим в интерфейс один метод.

Теперь создадим класс HelloWorldBean, реализующий наш интерфейс : TestEJB -> New -> Class. В данном случае Bean нужно добавлять всегда.

package lesson;
import javax.ejb.*;
@Stateless
public class HelloWorldBean implements HelloWorldLocal {
    public String getMessage(String name) {
        return "Hello" + name + "!";
    }
}

На этом с EJB мы закончили. Далее переходим к web-модулю. Создаем страничку JSP : WebContent -> New -> JSP. На эту же страничку у нас будет выводиться результат, но сделано это исключительно в целях экономии места, чтоб не создавать лишних файлов.

<jsp:root version="2.0" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns="http://www.w3.org/1999/xhtml">
    <jsp:directive.page contentType= "text/html; charset=UTF-8" />
    <html>
        <head>
            <title>My first EJB</title>
        </head>
        <body>
            ${result}
            <form action="test" method="post">
                Enter your name:<input type="text" name="name" value=""/>
                <input type="submit" value="Submit"/>
            </form>
        </body>
    </html>
</jsp:root>

Далее создаем сервлет : TestWeb -> New -> Servlet


package servlets;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.ejb.*;
import lesson.*;
public class TestClient extends HttpServlet implements javax.servlet.Servlet {
    @EJB
    private HelloWorldLocal hello;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            String result = hello.getMessage(request.getParameter("name"));
            request.getSession().setAttribute("result", result);
            RequestDispatcher rd = request.getRequestDispatcher( "index.jsp");
            rd.forward(request, response);
        } catch (Exception e) {
            throw new ServletException(e.getMessage());
        }
    }
}

Также в папке WebContent -> WEB-INF должен быть файл web.xml - версия должна быть 2.5!

<?xml version="1.0"encoding="UTF-8"?>
<web-appversion= "2.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>TestWeb</display-name> <servlet> <description>TestClient</description> <display-name>TestClient</display-name> <servlet-name>TestClient</servlet-name> <servlet-class>servlets.TestClient</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestClient</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>

И последний шаг. TestWeb -> Properties -> J2EE Module Dependencies и отмечаем опцию TestEJB.jar. Готово, можно запускать.

Продолжение статьи - Пример EJB приложения в Eclipse (продолжение)

Скачать примеры кода для статьи

Если Вам понравилась статья, проголосуйте за нее

Голосов: 10  loading...
art   artemgolubev   Vigour   oleger   alex2342   Swora   fi5114   san   AlexWebs   irinarinka