java.lang.ClassNotFoundException: org.reactivestreams.Publisher не найден при использовании компонента camelahc

Ответ Форпассака почти прав. Это

order allow,deny
<Files ~ "\.(js|sql)$">
   allow from all
</Files>

Вам нужна директива order сверху (и вам больше ничего не нужно).

Интересно, кажется, мы не можем просто отрицайте регулярное выражение в FilesMatch, что ... странно, тем более, что "!" не вызывает ошибок сервера или чего-либо еще. Ну, duh.


и немного объяснения:

Причина заказа сообщает серверу о его ожидаемом поведении по умолчанию.

 order allow,deny

сообщает серверу сначала обрабатывать директивы «allow»: если запрос соответствует любой разрешающей директиве, он помечен как нормально. Затем действуют директивы «deny»: если запрос соответствует любым директивам deny, он отрицается (не имеет значения, разрешено ли ему на первом проходе). Если совпадений не найдено, файл отказывается.

Директива

 order deny,allow

работает обратным образом: сначала сервер обрабатывает директивы «deny»: если запрос совпадает, он помечен как отрицаемый. Затем директивы «allow» эвакуируются: если запрос соответствует директиве allow, это разрешено, даже если оно соответствует директиве deny ранее. Если запрос ничего не соответствует, файл разрешен.

В этом конкретном случае сервер сначала пытается сопоставить директивы allow: он видит, что js и sql-файлы разрешены, поэтому запрос на foo.js идет через; запрос bar.php не соответствует никаким директивам, поэтому ему отказано.

Если мы поменяем директиву на «запретить порядок, разрешить», то foo.js будет проходить (для js), а bar.php также будет проходить, поскольку он не соответствует шаблонам.


oh и еще одна вещь: директивы в секции (т. е. & lt; Files> и & lt; Directory>) всегда выкапываются после основной файл .htaccess, перезаписывая его. Вот почему решение Vorapsak не работало так, как предполагалось: основной .htaccess отклонил запрос, затем & lt; Файлы> заказ был обработан, и он разрешил запрос.

Htaccess - магия худшего типа, но есть логика.

1
задан Mar Yam 18 March 2019 в 12:25
поделиться

1 ответ

Проблема заключается в автоматическом обертывании артефакта org.asynchttpclient/async-http-client.

Обтекание по умолчанию делает все предложения Import-Package необязательными, что иногда затрудняет создание надежной проводной установки, потому что, когда средство распознавания смотрит на упакованный пакет, прежде чем смотреть на те, которые экспортируют «дополнительные» пакеты, они не будут соедините вместе, и поскольку они не являются обязательными, распознаватель с радостью пропустит их, даже если они появятся через микросекунду позже.

Чтобы проверить это, вы можете bundle:refresh <id> установить пакеты async-http-client и посмотреть bundle:tree-show <id>, все ли еще пакеты не подключены (пометить как WARNING).

Чтобы надежно исправить это, вы можете создать свою собственную функцию на основе официальной функции Apache Camel и изменить упаковку, чтобы сделать определенные импорты обязательными (например, добавить &Import-Package=org.reactivestreams,*;resolution:=optional к выражению wrap:).

Также взгляните на протокол обтекания .

0
ответ дан Ancoron 18 March 2019 в 12:25
поделиться
Другие вопросы по тегам:

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