Foros de discusión

Struts 1.1 Portlet mit Liferay 6.2

N. H., modificado hace 9 años.

Struts 1.1 Portlet mit Liferay 6.2

Junior Member Mensajes: 71 Fecha de incorporación: 14/11/13 Mensajes recientes
Guten Morgen Zusammen,
wir hatten in unserer Liferay 5.2.3 Version ein Struts Portlet laufen welches auch gut funktionierte. Nun habe ich versucht dieses nach 6.2 zu migrieren.

Ich habe folgende Schritte gemacht:
1. Ich habe in allen xml Dateien den Kopf geändert das dort die dtd´s von Liferay 6.2 gezogen werden
2. Ich habe util-taglib.jar, util-bridges.jar und util-java.jar ausgetauscht gegen die neue Version aus Liferay 6.2
3. Ich habe die Apache portals-bridges Version 1.1 eingebunden.

In der liferay-portlet.xml steht folgendes


<portlet>
		<portlet-name>PortletStruts</portlet-name>
		<portlet-url-class>com.liferay.portal.apache.bridges.struts.LiferayStrutsPortletURLImpl</portlet-url-class>
		<use-default-template>true</use-default-template>
		<restore-current-view>true</restore-current-view>
		<private-request-attributes>true</private-request-attributes>
	</portlet>



in der Portlet.xml

<portlet-name>PortletStruts</portlet-name>
		<display-name>PortletStruts</display-name>
		<portlet-class>org.apache.portals.bridges.struts.StrutsPortlet</portlet-class>
		<init-param>
			<name>ServletContextProvider</name>
			<value>com.liferay.util.bridges.struts.LiferayServletContextProviderWrapper</value>
		</init-param>
		<init-param>
			<name>ViewPage</name>
			<value>preErsteSeite.do</value>
		</init-param>
		<expiration-cache>0</expiration-cache>
		<supports>
			<mime-type>text/html</mime-type>
			<portlet-mode>edit</portlet-mode>
			<!--portlet-mode>help</portlet-mode-->
			<portlet-mode>print</portlet-mode>
		</supports>
		<portlet-info>
			<title>PortletStruts</title>
		</portlet-info>
		<security-role-ref>
			<role-name>administrator</role-name>
		</security-role-ref>
		<security-role-ref>
			<role-name>guest</role-name>
		</security-role-ref>
		<security-role-ref>
			<role-name>power-user</role-name>
		</security-role-ref>
		<security-role-ref>
			<role-name>user</role-name>
		</security-role-ref>
	


in der web.xml habe ich noch folgende Einträge

<context-param>
		<param-name>com.ibm.websphere.portletcontainer.PortletDeploymentEnabled</param-name>
		<param-value>false</param-value>
	</context-param>
	
	<listener>
		<listener-class>com.liferay.portal.kernel.servlet.PluginContextListener</listener-class>
	</listener>
	<listener>
		<listener-class>com.liferay.portal.kernel.servlet.SerializableSessionAttributeListener</listener-class>
	</listener>
	<servlet>
		<servlet-name>PortletActionServlet</servlet-name>
		<servlet-class>com.liferay.util.bridges.struts.LiferayPortletServlet</servlet-class>
		<init-param>
			<param-name>config</param-name>
			<param-value>/WEB-INF/struts-config.xml</param-value>
		</init-param>
		<init-param>
			<param-name>debug</param-name>
			<param-value>1</param-value>
		</init-param>
		<init-param>
			<param-name>detail</param-name>
			<param-value>1</param-value>
		</init-param>
	</servlet>
	<servlet>
		<servlet-name>PortletStruts</servlet-name>
		<servlet-class>com.liferay.portal.kernel.servlet.PortletServlet</servlet-class>
		<init-param>
			<param-name>portlet-class</param-name>
			<param-value>org.apache.portals.bridges.struts.StrutsPortlet</param-value>
		</init-param>
		<load-on-startup>0</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>PortletActionServlet</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>PortletStruts</servlet-name>
		<url-pattern>/PortletStruts/*</url-pattern>
	</servlet-mapping>




Das Portlet startet auch fehlerfrei und ich kann es Liferay hinzufügen und bekomme auch die erste Seite angezeigt. klicke ich aber nun auf einen Button wird zwar die ganze Seite refresht aber er landet nicht in meiner Action Klasse und ich bekomme im Log nur folgende Zeile


StrutsPortlet W org.apache.portals.bridges.struts.StrutsPortlet processRequest Warning: Using the original action URL for render URL: /suche_kriterien.do.
A redirect should have been issued.


Was macht ich falsch emoticon wer kann mir helfen ?

Viele Grüße
N.H
thumbnail
Nikolai Reisch, modificado hace 9 años.

RE: Struts 1.1 Portlet mit Liferay 6.2

New Member Mensajes: 14 Fecha de incorporación: 25/02/09 Mensajes recientes
Prüfe bitte, ob du portlet-namespace verwendest. Wenn nicht kommen Parameter nicht mehr an der Action an.
Abhilfe schafft auch ein Eintrag in der liferay-portlet.xml:
Liferay Requires Name Spaced Parameters


<requires-namespaced-parameters>false</requires-namespaced-parameters>
N. H., modificado hace 9 años.

RE: Struts 1.1 Portlet mit Liferay 6.2

Junior Member Mensajes: 71 Fecha de incorporación: 14/11/13 Mensajes recientes
Hallo Nikolai,
ich komme einen Schritt weiter emoticon super danke.

Allerdings verstehe ich nicht ganz wieso wir <requires-namespaced-parameters>false</requires-namespaced-parameters> bei Liferay 6.2 brauchen und bei 5.2.3 haben wir das nicht gebraucht ?

Gibt es hier eine Änderung in Liferay ?

Viele Grüße,
N.H
thumbnail
Nikolai Reisch, modificado hace 9 años.

RE: Struts 1.1 Portlet mit Liferay 6.2

New Member Mensajes: 14 Fecha de incorporación: 25/02/09 Mensajes recientes
Ja, es gibt eine Änderung : https://www.liferay.com/de/web/meera.success/blog/-/blogs/liferay-requires-name-spaced-parameters

Diese Änderung gilt übrigens für alle Portlet-Typen (JSF, MVC,...) und hat und auch einige Stunden beschäftigt...

Viele Grüße,
Nikolai
N. H., modificado hace 9 años.

RE: Struts 1.1 Portlet mit Liferay 6.2

Junior Member Mensajes: 71 Fecha de incorporación: 14/11/13 Mensajes recientes
Super vielen vielen Dank emoticon