Правильная конфигурация ActiveWeb для простого приложения: вывод на сервер пуст

Я борюсь с ActiveWeb в настоящее время. Я обнаружил, что, как мне кажется, это руководство здесь http://javalite.io/activeweb содержит много дезинформации.

Сначала говорится, что ActiveWeb имеет нулевую конфигурацию, что не соответствует действительности. web.xml все еще требуется. Также требуется настройка в Java. Например, файл AppBootstrap.java должен присутствовать в соответствующем месте.

Во-вторых, я пока не могу найти, как настроить представления для работы.

У меня есть следующий контроллер

package app.controllers;

import java.util.Date;

import org.javalite.activeweb.AppController;

public class GreetingController extends AppController {
    public void index() {

    }

    public void hello() {
        view("date", new Date().toString());
        view("name", param("name"));

    }
}

и это работает, как я вижу в отладчике. Когда я открою http://localhost:8080/testapp/greeting/helloТочка останова в hello() метод достигнут.

К сожалению, файл hello.ftl, находится в WEB-INF/views/greeting/hello.ftl очевидно игнорируется, потому что вывод браузера пуст.

Одновременно он на 100% пуст, то есть нет никаких заголовков HTTP вообще. Это указывает на предположение, что некоторые общие настройки отсутствуют.

Кроме того, у меня есть пустой вывод на любой запрос, в том числе

http://localhost:8080/testapp

http://localhost:8080/testapp/greeting

http://localhost:8080/testapp/abracadabra

в то время как некоторые запросы должны возвращать ошибки или служебные сообщения.

Запрос

http://localhost:8080/

возвращается 404 Это означает, что контейнер работает нормально.

мой web.xml это следует:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

    <filter>
        <filter-name>dispatcher</filter-name>
        <filter-class>org.javalite.activeweb.RequestDispatcher</filter-class>
        <init-param>
            <param-name>exclusions</param-name>
            <param-value>css,images,js</param-value>
        </init-param>
        <init-param>
            <param-name>root_controller</param-name>
            <param-value>home</param-value>
        </init-param>
    </filter>


    <filter-mapping>
        <filter-name>dispatcher</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

ОБНОВИТЬ

Когда я удалил root_controller параметр из web.xml, сервер начал отвечать со списком каталогов на

http://localhost:8080/testapp

Другие ответы до сих пор полностью пусты

ОБНОВЛЕНИЕ 2

По-видимому WEB-INF/views/layouts/default_layout.ftl должен присутствовать. В противном случае результаты будут пустыми, и об ошибке не будет сообщено.

1 ответ

Что -то определенно неправильно настроено в вашем приложении. Можете ли вы опубликовать источники где-нибудь на Github? Вы также можете клонировать это приложение: https://github.com/javalite/activeweb-bootstrap

Другие вопросы по тегам