Правильная конфигурация 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