REST и не RESTful URL вместе не работают

Все мои попытки получить работающий пример обеих, чистой конфигурации с перегрузкой и хотя бы одного URL без перегрузки

У меня есть эта страница в качестве руководства:https://cwiki.apache.org/confluence/display/WW/REST+Plugin

У меня есть одна модель,Receipt с несколькими тестовыми полями.

Чистое решение REST работает, как и ожидалось, так:

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<constant name="struts.devMode" value="true"/>

<constant name="struts.mapper.class" value="rest" />

<constant name="struts.convention.action.suffix" value="Controller"/>
<constant name="struts.convention.action.mapAllMatches" value="true"/>
<constant name="struts.convention.default.parent.package" value="rest-default"/>
<constant name="struts.convention.package.locators" value="controllers"/>

хорошо работает с этими результатами:

receipt.json&nbsp;=> отобразить список всех чеков

receipt/1.json&nbsp;=> отобразить квитанцию ​​с id = 1

Но если я попытаюсь смешать restful с non-restful URL-адресами (так же, как мне сказали в вики-статье), вот так:

<constant name="struts.action.extension" value="xhtml,,xml,json,action"/>
<constant name="struts.mapper.class" value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper" />
<constant name="struts.mapper.prefixMapping" value="/rest:rest,:struts"/>

<constant name="struts.convention.action.suffix" value="Controller"/>
<constant name="struts.convention.action.mapAllMatches" value="true"/>
<constant name="struts.convention.default.parent.package" value="rest-default"/>
<constant name="struts.convention.package.locators" value="controllers"/>

это взрывается с этим:

Struts has detected an unhandled exception:

Messages:   
com.immaculate.receipto.controllers.ReceiptController.execute()
File:   java/lang/Class.java
Line number:    1,778

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

Как это исправить?

ВотReceiptController:

public class ReceiptController implements ModelDriven<Object> {

    private ReceiptManager receiptManager = new ReceiptManager();
    private String id;
    private Receipt model = new Receipt();
    private Collection list;


    public Object getModel(){
        if(list==null){
            return model;
        } else {
            return list;
        }
    }

    public HttpHeaders create() {
        receiptManager.save(model);
        return new DefaultHttpHeaders("show");
    }


    public HttpHeaders show() {
        model = receiptManager.find(id);
        return new DefaultHttpHeaders("show");
    }

    public HttpHeaders destroy() {
        model = receiptManager.destroy(id);
        return new DefaultHttpHeaders("show");
    }


    public HttpHeaders index() {
        list = receiptManager.list();
        return new DefaultHttpHeaders("show");
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

Очевидно, я делаю что-то не так здесь. Нужно ли мне знать что-то еще, кроме того, что объясняется здесь?

Кроме того, как я могу это прочитать? :

<constant name="struts.mapper.prefixMapping" value="/rest:rest,:struts"/>

Значит ли это, что все начинается с/rest&nbsp;будет сопоставлен с моим чистым контроллером отдыха, который, в свою очередь, сопоставит мою квитанцию ​​и что-либо без/rest&nbsp;префикс будет сопоставлен с отображением стоек по умолчанию? или я здесь совсем не в том направлении?