Fórumok
Erro: No matching handler method found for portlet request
Miguel Alves, módosítva 12 év-val korábban
Erro: No matching handler method found for portlet request
New Member Bejegyzések: 3 Csatlakozás dátuma: 2011.06.14. Legújabb bejegyzések
Boas,
Eu estou a desenvolver 2 portlets e neste momento estou a tentar comunicar entre eles através dos eventos, e obtive o seguinte erro:
No ficheiro portlet.xml tenho o seguinte:
De seguida tenho num Controlador o seguinte para enviar o evento para o outro controlador:
Do lado do outro controlador para activer o evento tenho o seguinte:
Já tentei fazer debug e tudo corre bem quando é executado o código no primeiro controlador, no entanto nunca é dectetado o evento no segundo controlador. Alguém me consegue dar alguma sugestão do que poderei estar a fazer mal?
Cumprimentos,
Miguel Alves
Eu estou a desenvolver 2 portlets e neste momento estou a tentar comunicar entre eles através dos eventos, e obtive o seguinte erro:
[WARN ][org.springframework.web.portlet.DispatcherPortlet][1164][http-8080-2]: Handler execution resulted in exception - forwarding to resolved error view
javax.portlet.UnavailableException: No matching handler method found for portlet request: mode 'view', phase 'EVENT_PHASE', parameters map[[empty]]
at
No ficheiro portlet.xml tenho o seguinte:
<!--?xml version="1.0"?-->
<portlet-app version="2.0" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
<portlet>
....
<supported-publishing-event>
<qname xmlns:x="http://liferay.com/events">x:chooseCommunity</qname>
</supported-publishing-event>
</portlet>
<portlet>
...
<supported-processing-event>
<qname xmlns:x="http://liferay.com/events">x:chooseCommunity</qname>
</supported-processing-event>
</portlet>
<event-definition>
<qname xmlns:x="http://liferay.com/events">x:chooseCommunity</qname>
<value-type>java.lang.String</value-type>
</event-definition>
</portlet-app>
De seguida tenho num Controlador o seguinte para enviar o evento para o outro controlador:
@ActionMapping("communityChoosen")
protected void handleCommunityChoosen(ActionRequest request, ActionResponse response)
throws Exception {
String communityChoosen = request.getParameter("communityId");
QName qname = new QName("http://liferay.com/events","chooseCommunity");
response.setEvent(qname, communityChoosen);
}
Do lado do outro controlador para activer o evento tenho o seguinte:
@EventMapping(value = "{http://liferay.com/events}chooseCommunity")
public void receiveEvent(EventRequest request, EventResponse response, ModelMap map) {
Event event = request.getEvent();
String communityIdFromEvent = (String) event.getValue();
map.put("communityIdFromEvent", communityIdFromEvent);
response.setRenderParameter("communityIdFromEvent", communityIdFromEvent);
}
Já tentei fazer debug e tudo corre bem quando é executado o código no primeiro controlador, no entanto nunca é dectetado o evento no segundo controlador. Alguém me consegue dar alguma sugestão do que poderei estar a fazer mal?
Cumprimentos,
Miguel Alves
Henrique Simoes de Andrade, módosítva 12 év-val korábban
RE: Erro: No matching handler method found for portlet request
Regular Member Bejegyzések: 165 Csatlakozás dátuma: 2010.04.30. Legújabb bejegyzések
Oi!
Você pode postar o conteúdo do seu portlet.xml por completo? Está parecendo que não está definido o modo de visualização view. Eu também utilizo IPC e está func. na boa:
Portlet A
Portlet B
Você pode postar o conteúdo do seu portlet.xml por completo? Está parecendo que não está definido o modo de visualização view. Eu também utilizo IPC e está func. na boa:
Portlet A
<portlet>
<portlet-name>portlet-a</portlet-name>
<display-name>Meu Portlet</display-name>
<portlet-class>PortletA</portlet-class>
<init-param>
<name>view-jsp</name>
<value>/view.jsp</value>
</init-param>
<init-param>
<name>edit-jsp</name>
<value>/admin.jsp</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>edit</portlet-mode>
</supports>
<portlet-info>
<title>Meu Título</title>
<short-title>Meu Título</short-title>
<keywords>teste</keywords>
</portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
<!-- Definicao de processamento do evento para IPC -->
<supported-processing-event>
<qname xmlns:x="http://meu.host.com/portlet/events">x:ipc.grupoA</qname>
</supported-processing-event>
</portlet>
Portlet B
<portlet>
<portlet-name>portlet-b</portlet-name>
<display-name>Meu Portlet B</display-name>
<portlet-class>PortletB</portlet-class>
<init-param>
<name>view-jsp</name>
<value>/view-menu.jsp</value>
</init-param>
<init-param>
<name>edit-jsp</name>
<value>/admin-menu.jsp</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>edit</portlet-mode>
</supports>
<portlet-info>
<title>Meu Título 2</title>
<short-title>Meu Título 2</short-title>
<keywords>teste2</keywords>
</portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
<!-- Definicao de publicacao do evento para IPC -->
<supported-publishing-event>
<qname xmlns:x="http://meu.host.com/portlet/events">x:ipc.grupoA</qname>
</supported-publishing-event>
</portlet>
<!-- Definicao do evento para IPC -->
<event-definition>
<qname xmlns:x="http://meu.host.com/portlet/events">x:ipc.grupoA</qname>
<value-type>java.lang.Long</value-type>
</event-definition>
Marcelo Guimarães Melo, módosítva 12 év-val korábban