Използвам IBM WebSphere (WAS) 7.0.0.19 за хостване на уеб-приложение, базирано на java, и трябваше да съпоставя разширението *.html към конкретен сървлет, за да мога да направя известно пречистване от страна на сървъра на предоставен от потребителя HTML файлове. (Сървърът чете файла, допълва го с допълнителна информация и показва промененото съдържание прозрачно на лицето, което преглежда страницата.)
За съжаление, когато направих това, файловете за добре дошли спряха да работят. Преди, ако въвеждах URL адреса за директория, сървърът търсеше index.html и го сервираше. Сега просто получавам 403 забранено правило („Забранено – по правило.“). Регистрационните файлове за достъп не показват нищо повече - те просто заявяват, че индексирането на директория е забранено от правило за сървъра, което е правилно. Не искам уеб сървърът да създава съдържание за директории без index.html, но когато има index.html, искам той да обслужва този файл.
Първата ми мисъл беше, че се опитва да обслужи index.html чрез моя сервлет, сървлетът не успяваше да намери файла (защото в url липсваше „index.html“) и затова смяташе, че няма index.html. Въпреки това, аз поставих някакъв код за отстраняване на грешки и съм напълно уверен, че кодът на сървлета никога не се изпълнява, когато отида просто в самата директория.
Наистина не ме интересува дали index.html се обслужва чрез сървлета или не - в случая с този конкретен файл, сервлетът просто ще изплюе обратно оригиналния файл така или иначе. Просто искам index.html да се обслужва от нещо.
Ето съответния раздел от моя web.xml
<servlet-mapping>
<servlet-name>PageScrubber</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
Колкото и да си струва, index.htm и index.jsp не работеха преди добавянето на съпоставянето на сървлета. Преди работеше само index.html. Сега обаче никой от тях не работи.
Използвал съм същия web.xml с два продукта на Oracle: WebLogic (WLS) и Oracle Application Server (OAS) без проблеми.
Напълно съм убеден, че просто добавянето на този сървлет за почистване е причинило проблема, защото премахването на тази директива накара индексирането на директории да започне да работи отново.
Намерих някои бележки за това, че списъкът с добре дошли файлове не работи при използване на разширен корен на документ и се опитах да настроя com.ibm.ws.webcontainer.EnablePartialURLtoExtendedDocumentRoot да бъде вярно, но това изглежда не промени нищо.
Доста съм без идеи. Някой има ли някакви мисли защо не намира моя index.html? Благодаря предварително!