Fórumok

Problem mit einem Liferay Ext Plugin

N. H., módosítva 9 év-val korábban

Problem mit einem Liferay Ext Plugin

Junior Member Bejegyzések: 71 Csatlakozás dátuma: 2013.11.14. Legújabb bejegyzések
Guten Morgen Zusammen,

wir haben als Server einen WAS 8 und wollen hierrauf ein Liferay mit einem Ext Plugin installieren. Nun unterstützt WAS leider kein Auto Deploy.

Wir sind also hingegangen und haben versucht ein "customisiertes" war File zu bauen. Wir haben ein Ext Plugin geschrieben welches die Login und Logout Action überschreibt und einen eigenen Ldap Importer mitbringt

Die Ordner
ext-lib
ext-service
ext-util-bridges
ext-util-java
ext-util-taglib
ext-web
enthalten keine Sourcen

Nur der Ordner ext-impl enthält in folgenden Pfaden Dateien
docroot/WEB-INF/ext-impl/src/com/liferay/portal/action/LogoutAction.java
docroot/WEB-INF/ext-impl/src/com/liferay/portal/servlet/filters/autologin/AutoLoginFilter.java
docroot/WEB-INF/ext-impl/src/de/custom/portal/security/ldap/CustomPortalLDAPImporterImpl.java
docroot/WEB-INF/ext-impl/src/META-INF/ldap-spring.xml

die ldap-Spring.xml sieht wie folgt aus


<!--?xml version="1.0"?-->

<beans default-destroy-method="destroy" default-init-method="afterPropertiesSet" xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
	<bean id="ldapToPortalConverter" class="com.liferay.portal.security.ldap.DefaultLDAPToPortalConverter" />
	<bean id="portalToLDAPConverter" class="com.liferay.portal.security.ldap.DefaultPortalToLDAPConverter" />
	<bean id="com.liferay.portal.security.ldap.PortalLDAPExporterUtil" class="com.liferay.portal.security.ldap.PortalLDAPExporterUtil">
		<property name="portalLDAPExporter">
			<bean class="com.liferay.portal.security.ldap.PortalLDAPExporterImpl">
				<property name="portalToLDAPConverter" ref="portalToLDAPConverter" />
			</bean>
		</property>
	</bean>
	<bean id="com.liferay.portal.security.ldap.PortalLDAPImporterUtil" class="com.liferay.portal.security.ldap.PortalLDAPImporterUtil">
		<property name="portalLDAPImporter">
			<bean class="de.custom.portal.security.ldap.CustomPortalLDAPImporterImpl">
				<property name="LDAPToPortalConverter" ref="ldapToPortalConverter" />
			</bean>
		</property>
	</bean>
</beans>


Das ganze haben wir gebaut und anschließend haben wir das Original Liferay war file genommen und folgende Änderungen eingefügt
Im Ordner WEB-INF
- Datei ext-liferay-custom-ext.xml eingefügt


<!--?xml version="1.0"?-->

-<ext-info>

<servlet-context-name>liferay-custom-ext</servlet-context-name>


-<files>

<file>ext-impl/classes/META-INF/ldap-spring.xml</file>

<file>ext-impl/classes/com/liferay/portal/action/LogoutAction.class</file>

<file>ext-impl/classes/com/liferay/portal/deploy/dependencies/ext-liferay-custom-ext-util-bridges.jar</file>

<file>ext-impl/classes/com/liferay/portal/deploy/dependencies/ext-liferay-custom-ext-util-java.jar</file>

<file>ext-impl/classes/com/liferay/portal/deploy/dependencies/ext-liferay-custom-ext-util-taglib.jar</file>

<file>ext-impl/classes/com/liferay/portal/servlet/filters/autologin/AutoLoginFilter.class</file>

<file>ext-impl/classes/de/custom/portal/security/ldap/CustomPortalLDAPImporterImpl.class</file>

<file>ext-web/docroot/META-INF/MANIFEST.MF</file>

</files>

</ext-info>



Im Ordner WEB-INF/lib
- Dateien ext-liferay-custom-ext-impl.jar, ext-liferay-custom-ext-util-bridges.jar, ext-liferay-custom-ext-util-java.jar, ext-liferay-custom-ext-util-taglib.jar eingefügt

Anschließend wollten wir dieses war File bei uns auf dem WAS installieren auf einer Linux Maschine. Leider funktioniert es nicht das EXT Plugin wird nicht gezogen emoticon.

Wo kann der Fehler liegen ? emoticon

Viele Grüße,
N.H.
thumbnail
Olaf Kock, módosítva 9 év-val korábban

RE: Problem mit einem Liferay Ext Plugin

Liferay Legend Bejegyzések: 6403 Csatlakozás dátuma: 2008.09.23. Legújabb bejegyzések
Beim schnellen draufschauen fallen mir diese Klassen auf:

docroot/WEB-INF/ext-impl/src/com/liferay/portal/action/LogoutAction.java
docroot/WEB-INF/ext-impl/src/com/liferay/portal/servlet/filters/autologin/AutoLoginFilter.java

Sind das die originalen Liferay Klassen oder angepasste? Falls es geänderter Code ist, ist es möglich, dass der Classloader in WAS zuerst die originalen Klassen lädt und damit diese überladenen nicht genutzt werden. Deshalb ist es ratsam, eigene Klassen anzulegen, die dann nur im ext zu finden sind, und die Spring-Verdrahtung entsprechend anzupassen. Manchmal ist das schwierig und gerade Classloader-Reihenfolgen unterscheiden sich von Appserver zu Appserver (oder evtl. sogar zwischen Versionen des gleichen Appservers, oder des Betriebssystems).

Das ist allerdings auch zunächst mal eine schnelle Vermutung, zu mehr reicht's grad nicht (und ich habe keinen WAS hier zum testen). Vielleicht hilft der Hinweis ja beim Debuggen
N. H., módosítva 9 év-val korábban

RE: Problem mit einem Liferay Ext Plugin

Junior Member Bejegyzések: 71 Csatlakozás dátuma: 2013.11.14. Legújabb bejegyzések
Wir müssen doch dann auch folgende Dateien anpassen oder ?

struts-config.xml -> Um die neue Action dort einzuhängen
liferay-web.xml -> Um dort den neuen AutoLoginFilter einzuhängen

die struts-config.xml kann man über strut-config-ext.xml anpassen oder ? Wie ist es mit der liferay-web.xml ?

emoticon
thumbnail
Olaf Kock, módosítva 9 év-val korábban

RE: Problem mit einem Liferay Ext Plugin

Liferay Legend Bejegyzések: 6403 Csatlakozás dátuma: 2008.09.23. Legújabb bejegyzések
Da ich grundsätzlich dazu rate, eher einen hook als ein ext-plugin zu verwenden:

Struts Actions können per Hook überladen werden. Das gleiche gilt für ServletFilter, z.B. für SSO-Zwecke.