ATG — Как приступить к созданию примера компонента и модуля Hello World?

Я новичок в ATG, и мне удалось успешно установить ATG версии 10.2 с помощью JBoss.
Однако, поскольку создание компонентов и модулей в ATG можно выполнять разными способами, поэтому я хотел бы знать, есть любой пример «Hello World» как для модуля, так и для компонента.

Я уже искал в гугле, но в разных статьях, присутствующих в интернете, не упоминается точечно, в деталях, последовательно.
Так что будет здорово, если люди смогут подробно описать шаги для новичка, т.к. По крайней мере, мне нужно начать с одного примера, который я могу позже использовать в качестве основы для других сложных.

Большое спасибо всем!

Примечание.
Я также в некоторой степени знаком с J2EE и MVC, где я могу отправлять формы и сохранять данные, введенные пользователем, в БД без каких-либо серьезных проблем.
Я также просматривая руководство разработчика ATG Page в данный момент.


atg
person Knowledge Craving    schedule 06.01.2014    source источник
comment
Спасибо за интересный вопрос, мне тоже интересен ATG, хочу изучить и установить этот фреймворк. В настоящее время я работаю с Symfony2.4 и PHP 5.4. В Google доступно много документов для этой структуры, но ничего для ATG. Можете ли вы мне помочь или предоставить мне какую-либо полную ссылку? Я хочу учиться и работать с ATG, я также знаю концепцию OOPS, MVC, ORM.   -  person Sid    schedule 27.03.2014


Ответы (4)


В ATG так много концепций, что придумать программу Hello World немного сложно. Вы хотите создать одну страницу JSP и развернуть ее как коммерческий справочный магазин? Вы хотите создать компонент только для просмотра в Dyn/Admin? Вы хотите создать репозиторий hello world? В зависимости от того, что вы хотите сделать, подход будет разным.

Для работы с ATG вам не нужно знать о сохранении значений в базе данных. Если вы подходите к программированию ATG с опытом работы с J2EE и MVC, вам может быть немного сложно справиться с этим, если только вы не начнете на свежую голову, потому что в ATG все совсем по-другому.

Поскольку @radimpe рассказал о создании дроплета hello world, я покажу, как создать простой компонент, чтобы его можно было просматривать в Dyn/Admin.

Создание компонента HelloWorld: он просто появляется в DynAdmin. Создайте проект Eclipse со следующей структурой.

Структура проекта Elipse

Ниже приведено содержимое каждого файла, показанного на снимке экрана выше.

HelloWorldComponent.java

package com.buddha.components;

import atg.nucleus.GenericService;
import atg.nucleus.ServiceException;

public class HelloWorldComponent extends GenericService {

    public String firstStr = "Dummy Value"; /* This value will be overwritten */

    public String getFirstStr() {
        return firstStr;
    }

    public void setFirstStr(String firstStr) {
        this.firstStr = firstStr;
    }

    @Override
    public void doStartService() throws ServiceException {
        super.doStartService();
        System.out.println("Hello ATG Component!");
    }

    @Override
    public void doStopService() throws ServiceException {
        super.doStopService();
        System.out.println("Hello ATG Component! Stops now!");
    }
}

Манифест.MF

Manifest-Version: 1.0
ATG-Required: DafEar.Admin 
ATG-Config-Path: config/
ATG-Class-Path: ./bin/ 

HelloWorldComponent.properties

$class=com.buddha.components.HelloWorldComponent
firstStr=HelloWorld

Создайте проект и скопируйте папку проекта в ${DYNAMO_ROOT} и выполните следующую команду, чтобы сгенерировать файл ear вашего проекта и развернуть его на сервере jboss.

runAssembler.bat -jboss HelloWorld.ear -m EXP_HelloATGComponentWorld

Перейдите к Dyn/Admin, найдите компонент HelloWorldComponent и щелкните компонент, указанный в результатах поиска.

Результаты поиска только что созданного компонента

Нажмите на нее, чтобы перейти на страницу компонента, чтобы увидеть созданное нами свойство и его значение, указанное в файле свойств. Свойство компонента, которое мы создали

Вы можете просмотреть журнал примерно так: 21:53:00,485 INFO [stdout] (http-/0.0.0.0:8080-1:ipaddr=127.0.0.1;path=/dyn/admin/nucleus//com/buddha/components/HelloWorldComponent;sessionid=gT4bmHj5WKs1Rf85GN0Z+9Qu) Hello ATG Component! Эта строка генерируется из-за sysout в нашем doStartService(); Вы также можете указать другие методы, которые можно вызывать через dyn/admin или взаимодействовать с другими компонентами. Удачи.

Источник: Создание компонента в Oracle Commerce Platform

person Buddha    schedule 11.01.2014
comment
Никогда не используйте sysout в своем коде. Всегда используйте logDebug/logInfo/logWarning/logError по мере необходимости. - person radimpe; 01.05.2014

Это довольно широкая тема, и в целом пример Hello World поможет вам начать работу только с выводом текста на экран. Большая часть вашего взаимодействия с интерфейсом будет происходить с FormHandlers и Droplets, из которых Droplet даст вам Hello World текст на экране. Итак, давайте начнем с этого.

<%-- JSTL --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<%-- DSP --%>
<%-- This tag library represents the ATG tags --%>
<%@ taglib prefix="dsp" uri="http://www.atg.com/taglibs/daf/dspjspTaglib1_0" %>

<%-- All, non-static includes will have a wrapping page tag --%>
<dsp:page>
  <%-- A droplet is almost like a servlet, and here you include the name of the droplet you want to call --%>
    <dsp:droplet name="/com/acme/droplet/HelloWorldDroplet">
    <%-- An 'output parameter' matches the name of the 'service parameter' in your droplet. You can have multiple of these --%>
     <dsp:oparam name="output">
       <%-- The 'param' matches the name of the 'setParameter' in your droplet and can also be assigned to a jstl variable below --%>
       Hello <dsp:valueof param="toWhom" />
     </dsp:oparam>
  </dsp:droplet>
</dsp:page>

Теперь создайте «компонент». Это файл свойств, который будет отображаться между страницей JSP и файлом CLASS (т. е. вы ссылаетесь на него в имени дроплета).

Файл: /com/acme/droplet/HelloWorldDroplet.properties

$class=com.acme.droplet.HelloWorldDroplet
$scope=global

А теперь создайте свой файл Java: (/com/acme/droplet/HelloWorldDroplet.java)

public class HelloWorldDroplet extends DynamoServlet {

    public void service(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws ServletException, IOException {
            //This will allow you to pass a parameter to the droplet eg: hello.jsp?who=Peter
        String who = pRequest.getParameter("who");

        //Do a check on whether to display the default value or the one passed in
        if (StringUtils.isEmpty(who)) {
            //'toWhom' is the name of the param on the JSP page
            pRequest.setParameter("toWhom", "World");
        } else {
            pRequest.setParameter("toWhom", who);
        }
        //'output' is the name of the 'oparam' on the JSP page.
        pRequest.serviceParameter("output", pRequest, pResponse);
        }
}

Надеюсь, этого будет достаточно, чтобы вы начали.

person radimpe    schedule 06.01.2014

Вы также можете взглянуть на страницу ниже. Она хорошо объясняет концепцию того, что на самом деле является компонентом, и как мы можем его использовать. -extending-out-of-box-components.html" rel="nofollow">http://learnoracleatg.blogspot.in/2014/10/art108-extending-out-of-box-components.html

Вы также можете начать прямо с основ, нажав кнопку «Основы» на панели навигации.. она очень хорошо объясняет концепции..

person Akshat    schedule 17.10.2014
comment
Вы могли бы немного объяснить и добавить ссылку, а не только ссылку! - person chouaib; 17.10.2014

Проверьте http://www.asknsay.com/creating-new-atg-project-in-eclipse.html для создания нового приложения в atg с нуля с использованием eclipse. В нем также рассказывается, как развернуть его в JBOSS 6.1.

person bajajsahil    schedule 21.10.2014