2012-02-10 3 views
2

Пытались поставить портлета JSP-страницы внутри папки WEB-INF и встретилась ошибкаПуть /WEB-INF/jsp/newportlet/view.jsp не доступен портлета

Path /WEB-INF/jsp/newportlet/view.jsp is not accessible by this portlet 

Почему возникает эта ошибка? Можно ли разрешить портлету получать доступ к WEB-INF? Можно ли закрывать доступ к JSP-портлетам из веб-браузера напрямую, а не помещать их в WEB-INF?

UPDATE 1

Я только что создал новый портлет с помощью мастера. Никакой код не написан, а только местоположение JSP. Место работало для мастера, потому что оно поставило JSP. Место находит свое отражение в portlet.xml в следующем подтега из <portlet> тега:

<init-param> 
    <name>view-jsp</name> 
    <value>/WEB-INF/jsp/newportlet/view.jsp</value> 
</init-param> 

код класса пуст:

public class NewPortlet extends MVCPortlet { 
} 
+0

Не могли бы вы показать код, как вы обращаетесь к jsp? – szhem

+0

Вы проверили, что эта папка (newportlet) имеет разрешения на чтение? – alfasin

+0

@alfasin Я запускаю Liferay под затмением, поэтому права должны быть одинаковыми все время. Если мастер смог создать файлы, они доступны. – Dims

ответ

4

С this темы

Я предполагаю, что вы не» t используйте MVCPortlet (где вы не можете включать файлы из каталога WEB-INF по умолчанию).

Также ознакомьтесь с исходным кодом метода MVCPortlet.checkJSPPath(String). Я считаю, что вы можете переопределить его, поэтому он не генерирует исключения.

+0

Переопределение помогло, хотя мне это не нравится. Он должен быть рекомендован. – Dims