Я создал несколько пользовательских сервлеты, и вызвать его люблю:Пользовательские Servlet в Liferay
https://[domain]/delegate/getpefrentry?param1=blabla¶m2=sdsada
Он отлично работает, но если я перезагрузить сервер, я получаю эту ошибку:
Сервер обнаружил внутреннюю ошибку(), которая помешала ему выполнить этот запрос.
исключение
javax.servlet.ServletException: No servlet registred for context getpefrentry com.liferay.portal.kernel.servlet.PortalDelegatorServlet.service(PortalDelegatorServlet.java:79) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:121) com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:208)
I need to hot deploy the war file of the servlet to make it work again.
My Liferay-hook.xml:
<hook>
<portal-properties>portal.properties</portal-properties>
<language-properties>content/Tips.properties</language-properties>
<servlet-filter>
<servlet-filter-name>MyFilter</servlet-filter-name>
<servlet-filter-impl>com.ncs.phm.ws.PhmWebServiceFilter</servlet-filter-impl>
</servlet-filter>
<servlet-filter-mapping>
<servlet-filter-name>MyFilter</servlet-filter-name>
<url-pattern>/delegate/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</servlet-filter-mapping>
мой web.xml:
<servlet> <display-name>WSPEFR</display-name> <servlet-name>WSPEFR</servlet-name> <servlet-class>com.liferay.portal.kernel.servlet.PortalDelegateServlet</servlet-class> <init-param> <param-name>servlet-class</param-name> <param-value>com.ncs.phm.ws.PhmWebServicePefr</param-value> </init-param> <init-param> <param-name>sub-context</param-name> <param-value>getpefrentry</param-value> </init-param> <init-param> <param-name>method</param-name> <param-value>get-latest-pefr-entry</param-value> </init-param> <load-on-startup>0</load-on-startup>
Я также добавил в portal.properties это: auth.public.paths =/делегат/*
Спасибо за ваш ответ, я попробовал, но он все тот же. Я поставил журнал на PortalDelegateServlet, он появляется только в том случае, если я горячо развертываю. Если я перезагружаюсь, кажется, что он не загружается, и, тем самым, остается той же ошибкой. –