Конфигурация Tomcat для обслуживания статического контента непосредственно для Orbeon

Ссылка на настройку Tomcat in orbeon рассказывает о том, как настроить сервер tomcat для передачи статического содержимого, такого как изображения, java-скрипты и css, непосредственно на клиентскую машину и снять ненужную нагрузку с движка Orbeon.

  • Описание здесь не содержит никаких подробностей, поэтому я не могу выполнить настройку.
  • Я также хотел бы знать, будет ли экстернализация работать для css и java-скриптов в orbeon 3.9, поскольку orbeon объединяет эти файлы в один файл.

Я использую tomcat 6.x и orbeon 3.9.

Отредактировано

структура папок изображений orbeond:\Server\apache-tomcat\webapps\orbeon3.9\WEB-INF\resources\images\forms_img

URL-адрес изображения, созданный orbeonhttp://localhost:8080/orbeon3.9/images/forms_img/print.gif

Код Orbeon для URL-адреса изображения<xhtml:img src="/images/forms_img/print.gif" />

Если кто успешно настроил. Пожалуйста, опубликуйте подробности.

заранее спасибо


person Naveen Babu    schedule 13.10.2011    source источник
comment
FWIW документация, на которую вы ссылаетесь, касается использования Apache Server в качестве внешнего интерфейса. Однако эта концепция также должна работать с фильтром UrlRewriterFilter, как это было предложено @palacsint.   -  person ebruchez    schedule 18.10.2011


Ответы (1)


Если вы не можете переместить папку resources и не должны использовать какие-либо специальные настройки Tomcat, используйте Фильтр перезаписи URL Таки. У меня работает следующее правило, поэтому он может обслуживать контент из папки WEB-INF:

<urlrewrite>
    <rule>
        <from>^/images/(.*)$</from>
        <to type="forward">/WEB-INF/resources/images/$1</to>
    </rule>
</urlrewrite>

Таки тоже может работать с файлами .htaccess, но я еще не использовал его. Возможно, связанный .htaccess хорошо работает с ним.


Другое решение:

Я предполагаю, что вы настроили сервлет orbeon в web.xml с шаблоном URL-адреса / как рекомендуемая документация:

<servlet>
    <servlet-name>orbeon-main-servlet</servlet-name>
    <servlet-class>
        org.orbeon.oxf.servlet.OrbeonServletDelegate
    </servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>orbeon-main-servlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

В Tomcat DefaultServlet обслуживает статическое содержимое, установите его для своего статического содержание:

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>
        org.apache.catalina.servlets.DefaultServlet
    </servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.jpg</url-pattern>
    ...
</servlet-mapping>

Затем заполните список url-pattern. Ваша связанная конфигурация (которая на самом деле указывает на конфигурацию HTTP-сервера Apache, а не на конфигурацию Tomcat) является хорошей отправной точкой.

Обратите внимание, что эти шаблоны не являются обычными регулярными выражениями. Проверьте спецификацию сервлета Java 12.2. Спецификация сопоставлений для синтаксиса (пример).


На основании вашего редактирования servlet-mapping должно выглядеть примерно так:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/images/forms_img/*</url-pattern>
</servlet-mapping>

И вам нужно переместить папку WEB-INF/resources/images/forms_img в /images/forms_img в вашем веб-приложении (так что она будет на d:\Server\apache-tomcat\webapps\orbeon3.9\images\forms_img), так как файлы под WEB-INF недоступны.

person palacsint    schedule 13.10.2011
comment
Я проверил вашу конфигурацию. Но источник столкнулся с проблемой при развертывании. изображения, где просматривается http://localhost:8080/orbeon3.9/images/forms_img/print.gif, но tomcat отфильтровал его и получил ошибку 404. Я обновил местоположение своего изображения и другие детали в первоначальном вопросе. Пожалуйста, дайте мне знать, если можно сделать какое-то перенаправление - person Naveen Babu; 14.10.2011
comment
Вы переместили папку images? - person palacsint; 14.10.2011
comment
я не могу переместить папку с изображениями для разных env. должен использовать один и тот же путь для tomcat и weblogic. - person Naveen Babu; 14.10.2011
comment
Я вижу, та же самая война должна работать и на WebLogic. Проверьте обновление, пожалуйста, я добавил еще одну идею. - person palacsint; 15.10.2011
comment
ваше другое решение работает без проблем, и я им доволен. Но первое решение не работает так, как вы описали. URL-адрес, сгенерированный с помощью urlredirect localhost:8080/orbeon3.9/WEB-INF/resources/images/forms_img/print.gif, недоступен напрямую через браузер. Поэтому я не понимаю, как это должно работать, когда мое приложение работает. Требуется ли какая-либо другая конфигурация для работы этого перенаправления URL? - person Naveen Babu; 18.10.2011
comment
1-й это Таки? type="forward" используйте внутреннюю переадресацию, чтобы браузеры не видели WEB-INF в URL-адресе. Более того, WEB-INF не должен быть доступен напрямую из браузера. - person palacsint; 18.10.2011