Пользовательский сервлет / jsp в портлете Liferay - PullRequest
2 голосов
/ 21 мая 2011

Я помню, что можно было добавить что-то подобное в web.xml портлета, и можно было достичь jsp или сервлета в http://host:8080/abcd/hw ....

<servlet>
    <servlet-name>myjsp</servlet-name>
    <jsp-file>/index.jsp</jsp-file>
    <init-param>
        <param-name>hello</param-name>
        <param-value>test</param-value>
    </init-param>
</servlet>
<servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>com.example.Servlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>myjsp</servlet-name>
    <url-pattern>/jsp/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>myServlet</servlet-name>
    <url-pattern>/abcd/hw</url-pattern>
    <load-on-startup>1</load-on-startup>
</servlet-mapping>

Но сейчасон вроде как разрешается в

INFO  [PortalImpl:4243] Current URL /abcd/hw generates exception: null

, как будто он был отфильтрован или что-то в этом роде, но я ничего не нашел при его отладке.

Я чувствую проблему здесь

13:48:58,587 DEBUG [ETagFilter:116] [http-8080-1]> com.liferay.portal.servlet.filters.etag.ETagFilter /web/guest/abcd/hw
13:48:58,588 DEBUG [I18nFilter:116] [http-8080-1]=> com.liferay.portal.servlet.filters.i18n.I18nFilter /web/guest/abcd/hw
13:48:58,588 DEBUG [SecureFilter:118] Access allowed for 127.0.0.1
13:48:58,589 DEBUG [SecureFilter:138] https is not required
13:48:58,589 DEBUG [SecureFilter:172] Not securing http://localhost:8080/web/guest/abcd/hw
13:48:58,590 DEBUG [SecureFilter:116] [http-8080-1]==> com.liferay.portal.servlet.filters.secure.SecureFilter /web/guest/abcd/hw
13:48:58,645 INFO  [PortalImpl:4437] Current URL /abcd/hw generates exception: null
13:48:58,646 DEBUG [SecureFilter:118] Access allowed for 127.0.0.1
13:48:58,647 DEBUG [SecureFilter:138] https is not required
13:48:58,647 DEBUG [SecureFilter:172] Not securing http://localhost:8080/c/portal/status
13:48:58,648 DEBUG [SecureFilter:116] [http-8080-1]===> com.liferay.portal.servlet.filters.secure.SecureFilter /c/portal/status
13:48:58,649 DEBUG [MainServlet:359] Process service request

1 Ответ

5 голосов
/ 21 мая 2011

Есть только одна информация, о которой вы не знаете.

URL будет http://host:8080/cool-portlet/abcd/hw ....

если вы запрашиваете сервлет, имя каталога 'web-context' должно следовать за ...

webapp/
    cool-portlet/
    ROOT/
...