ресурс не найден struts2 spring hibernate [дубликат]

Вопрос был:

Как вернуть ответ от асинхронного вызова?

, который может быть интерпретирован как:

Как сделать синхронный асинхронный код синхронным?

Решение будет состоять в том, чтобы избежать обратных вызовов и использовать комбинацию Promises и async / await.

Я хотел бы привести пример для запроса Ajax.

(Хотя он может быть записан в Javascript, я предпочитаю писать его на Python и компилировать его в Javascript, используя Transcrypt . Это будет достаточно ясно.)

Позволяет сначала включить использование JQuery, чтобы $ был доступен как S:

__pragma__ ('alias', 'S', '$')

Определить функцию, которая возвращает Promise, в этом случае вызов Ajax:

def read(url: str):
    deferred = S.Deferred()
    S.ajax({'type': "POST", 'url': url, 'data': { },
        'success': lambda d: deferred.resolve(d),
        'error': lambda e: deferred.reject(e)
    })
    return deferred.promise()

Использовать асинхронный код, как если бы он был синхронным:

async def readALot():
    try:
        result1 = await read("url_1")
        result2 = await read("url_2")
    except Exception:
        console.warn("Reading a lot failed")

0
задан sehe 27 October 2014 в 23:00
поделиться

2 ответа

Сначала вы должны использовать в web.xml

<filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>

, поскольку org.apache.struts2.dispatcher.FilterDispatcher устарел.

Пожалуйста, посмотрите на этот пример .

0
ответ дан njjnex 1 September 2018 в 09:51
поделиться

Вы можете увидеть страницу индекса, потому что она показана веб-контейнером Tomcat, и у нее нет тегов Struts (например, любой другой веб-проект без рамки Struts).

URL-адрес браузера показывает /test1/. Затем вы делаете запрос /test1/abc, нажимая кнопку отправки, и он был отфильтрован struts2, но он не смог найти действие с именем abc ни в пространстве имен /, ни в пространстве имен по умолчанию, и у вас нет любой ресурс с этим путем, поэтому вы получили ошибку 404.

Вы могли бы сказать, что настроили действие с именем abc в пространстве имен по умолчанию. Но эта конфигурация недоступна во время выполнения, также имя пакета должно быть struts-default, которое распространяется на ваш пакет.

Файл struts.xml должен находиться в пути к классам, это означает, что в папке src или resources. При компиляции он копируется в папку вывода компилятора. После сборки он будет скопирован в WEB-INF/classes из выходной папки компилятора. Эти две папки временно созданы и могут быть удалены перед процессом, поэтому, если у вас нет struts.xml в исходной папке, вам не хватает этого файла при запуске приложения.

Также обратите внимание, что у вас нет страниц JSP в папке webcontent, которые вы использовали в результатах.

1
ответ дан Roman C 1 September 2018 в 09:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: