Glassfish 3 - загрузка изображений со статического сервера - PullRequest
2 голосов
/ 19 марта 2011

Я пытаюсь загрузить изображения (и другой статический контент) с сервера вне моего веб-приложения, которое развернуто на Glassfish v3 .У меня есть следующие конфиги в web.xml , но он не работает на Glassfish (но он работает на Tomcat):

<servlet>
    <servlet-name>ExternalImagesServlet</servlet-name>
    <servlet-class>com.example.servlet.HttpProxyServlet</servlet-class>
    <init-param>
        <param-name>RemoteURI</param-name>
        <param-value>http://ip.of.second.server/website-files</param-value>
    </init-param>   
    <init-param>
        <param-name>AllowedContentTypes</param-name>
        <param-value>image/gif,image/jpeg,image/png</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>ExternalImagesServlet</servlet-name>
    <url-pattern>/images/*</url-pattern>
</servlet-mapping>

Где ip.of.second.сервер - это фактический IP-адрес сервера.У меня есть файл с именем website-files.xml , определенный следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="d:/internet/website/images" />

И website-files.xml сохраняется в glassfish \ domains \ domain1 \ config каталог.Но Glassfish не получает этот файл конфигурации.

Я посмотрел документацию по конфигурации Oracle Glassfish, но нет упоминания о том, как можно ссылаться на изображения с другого сервера.

Пожалуйста, помогите.

1 Ответ

5 голосов
/ 20 марта 2011

Я решил это, основываясь на старой ветке, относящейся к Glassfish версии 2, которую я нашел в Google после двух дней поиска.

Если кто-то заинтересован в решении, вот оно:

1) Создайте файл с именем sun-web.xml непосредственно в каталоге Webcontent \ WEB-INF и добавьте в этот файл следующую конфигурацию:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 Servlet 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd">
<sun-web-app>
   <property name="alternatedocroot_1" value="from=/images/* dir=d:/internet/website" />
   <property name="alternatedocroot_2" value="from=/files/* dir=d:/internet/website" />
</sun-web-app>

2) Удалите сервлет и сервлет-отображение конфигурации из файла web.xml (как я это делал выше). Примечание : вышеописанное будет работать, если вы будете использовать Tomcat .

3) Удалите website-files.xml из Glassfish \ domains \ domain1 \ config директория, так как Glassfish не нужен: Примечание : Этот файл необходим Tomcat .

...