掲示板

WIKI importer

12年前 に Jan Tošovský によって更新されました。

WIKI importer

Liferay Master 投稿: 565 参加年月日: 10/07/22 最新の投稿
Zdravim,

rad bych vytvoril hook, ktery by pridal novy WIKI importer.
Ten importer jsem rozchodil primym zasahem do lokalni kopie zdrojaku (psal jsem to vicemene ruco).
Vytvoril jsem novou slozku s jednim java classem
http://svn.liferay.com/repos/public/portal/branches/6.0.6/portal-impl/src/com/liferay/portlet/wiki/importers/

Upravil soubor portal.properties:
http://svn.liferay.com/repos/public/portal/branches/6.0.6/portal-impl/src/portal.properties

Přidal JSP stranku do nasledujici slozky:
http://svn.liferay.com/repos/public/portal/branches/6.0.6/portal-web/docroot/html/portlet/wiki/import

Cele jsem to uspesne zkompiloval (ant all) a mohu pouzit, jen to potrebuju nejak vyzobat a udelat z toho plug-in, ktery pujde aplikovat do jiz bezici Liferay aplikace.

Mam pred sebou Eclipse s Liferay IDE, ale netusim, jak tam (a kam) ty me zmeny uploadovat a zabalit do jar.

Mimochodem, Eclipse vidim prvne, tak prosim o shovivavost ;-)

Honza
thumbnail
12年前 に Tomas Polesovsky によって更新されました。

RE: WIKI importer (回答)

Liferay Master 投稿: 676 参加年月日: 09/02/13 最新の投稿
Ahoj,

netusim, zdali to jde vubec udelat hookem, urcite to pujde udelat Ext Pluginem.

Ty potrebujes:
1, pridat JSP
2, zmenit polozku v portal.properties
3, nahrat tridu provadejici import do portalu

Co hook umi:
1, pridat/zmenit JSP stranku
2, zmenit hodnotu polozky v portal.properties
3, prepsat existujici spring beanu a pridat model listener


Takze ad 1 je to v pohode.

Ad 2 - hook neumi zmenit polozku wiki.importers (viz HookHotDeployListener.java - tady je problem

Ad 3 - Podival jsem se do zdrojaku portalu a trida, ktera se pouziva pro import se inicializuje pomoci InstancePoolu, ktery se nacita portalovym/context classloaderem. Takze by jsi musel umistit svou tridu primo do webove aplikace portalu (ne do hooku) anebo inicializovat tvou classu do InstancePool pri startu tveho hooku s ContextClassLoaderem hooku (coz je spise hack, ale mohlo by to fungovat).

Takze hookem by to asi slo udelat, pokud by jsi mohl zmenit wiki.importers v portal-ext.properties (coz nejde z hooku, ale rucne jo emoticon ).

Jinak Ext Pluginem. Tam do adresare ext-impl nahrajes portal-ext.properties a svou tridu. Do ext-web to JSP. Ale musis si dat pozor, protoze muzes mit jen jeden portal-ext.properties a pobije se ti ten v ext pluginu s tim WEB-INF/classes v portalu. Takze tam by jsi musel pouzit mechanismus include-and-override (podivej se do portal.properties).

-- tom
12年前 に Jan Tošovský によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 565 参加年月日: 10/07/22 最新の投稿
Dik za rozbor. Z dokumentace k hookum se zdalo, ze menit portal.properties neni problem. Ten redukovany seznam SUPPORTED_PROPERTIES me tedy prekvapil. Pouzivat hacky me trosku desi.
Takze se holt radsi ponorim do tvorby Ext pluginu. Jen jsem mel pocit, ze je to spis technika na ustupu.
thumbnail
12年前 に Tomas Polesovsky によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 676 参加年月日: 09/02/13 最新の投稿
Jop, myslim ze pouzivani Ext Plugin se snazi Liferay minimalizovat, protoze to neni uplne easy. Neboli - je to easy ale s velkymi dusledky a tezce resitelnymi problemy pro novacky.

Musime pockat, myslim, ze drtiva vetsina veci pujde finalne pres hooky - tj. kontrolovanym zpusobem.
12年前 に Jan Tošovský によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 565 参加年月日: 10/07/22 最新の投稿
Přeci jen zkouším tu cestu přes hook. Prokousal jsem se nějak Eclipse, nevím zda ideálně, ale cosi jsem spáchal.

Properties jsem upravil růčo, mám to tady a po restartu serveru to skutečně ten importer přidá (příslušnou JSP):
liferay-portal-6.0.6\tomcat-6.0.29\webapps\ROOT\WEB-INF\classes\portal-ext.properties

Samotná akce ale selže, patrně to souvisí s tím avizovaným způsobem načítání:
ERROR [InstancePool:100] Unable to load net.cosi.MyWikiImporter with the portal class loader or the current context class loader
java.lang.ClassNotFoundException: net.cosi.MyWikiImporter


Proto bych rád poprosil o rozvedení toho hacku "inicializovat classu do InstancePool pri startu hooku s ContextClassLoaderem hooku. Je to pro mě trošku španělská vesnice.
thumbnail
12年前 に Tomas Polesovsky によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 676 参加年月日: 09/02/13 最新の投稿
Jan Tošovský:

Samotná akce ale selže, patrně to souvisí s tím avizovaným způsobem načítání:
ERROR [InstancePool:100] Unable to load net.cosi.MyWikiImporter with the portal class loader or the current context class loader
java.lang.ClassNotFoundException: net.cosi.MyWikiImporter


Proto bych rád poprosil o rozvedení toho hacku "inicializovat classu do InstancePool pri startu hooku s ContextClassLoaderem hooku. Je to pro mě trošku španělská vesnice.


Ano, to je presne ono, jak jsem predpokladal emoticon

Vec se ma takto (com.liferay.portal.kernel.util.InstancePool)

private Object _get(String className, boolean logErrors) {
	className = className.trim();

	Object obj = _classPool.get(className);

	if (obj == null) {
		ClassLoader portalClassLoader =
			PortalClassLoaderUtil.getClassLoader();

		try {
			Class<!--?--> clazz = portalClassLoader.loadClass(className);

			obj = clazz.newInstance();

			_put(className, obj);
		}
		catch (Exception e1) {
			if (logErrors &amp;&amp; _log.isWarnEnabled()) {
				_log.warn(
					"Unable to load " + className +
						" with the portal class loader",
					e1);
			}

			Thread currentThread = Thread.currentThread();

			ClassLoader contextClassLoader =
				currentThread.getContextClassLoader();

			try {
				Class<!--?--> clazz = contextClassLoader.loadClass(className);

				obj = clazz.newInstance();

				_put(className, obj);
			}
			catch (Exception e2) {
				if (logErrors) {
					_log.error(
						"Unable to load " + className +
							" with the portal class loader or the " +
								"current context class loader",
						e2);
				}
			}
		}
	}

	return obj;
}


Pro nas je dulezita cast v odchyceni vyjimky:

			Thread currentThread = Thread.currentThread();

			ClassLoader contextClassLoader =
				currentThread.getContextClassLoader();

			try {
				Class<!--?--> clazz = contextClassLoader.loadClass(className);


Takze tedkom ten hack.

Pri startu hooku bych pridal jako ServletContextListener do web.xml nejakou tridu, ktera zavola InstancePool, aby nacetla nasi tridu (a zaroven si ji ulozila k sobe). Takze neco takoveho (pisu z hlavy, takze tam bude pravdepodobne chyba emoticon ) :

public class ABCServletContextListener implements ServletContextListener{
    public ABCServletContextListener(){
    }
    public void contextInitialized(ServletContextEvent sce){
        ClassLoader l = Thread.currentThread().getContextClassLoader();
        try {
            Thread.currentThread().setContextClassLoader(net.cosi.MyWikiImporter.class.getClassLoader());
            com.liferay.portal.kernel.util.InstancePool.get(net.cosi.MyWikiImporter.class.getName());
        } finally {
            Thread.currentThread().setContextClassLoader(l);
        }
    }
}


Staci takto?

-- tom
12年前 に Jan Tošovský によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 565 参加年月日: 10/07/22 最新の投稿
Dikec, na to ze to bylo z hlavy dobry, bez chyby.
Aplikoval jsem to, ale nezabralo to. Souborem web.xml se mysli ten hooku? Behem inicializace serveru dostavam toto:
07:00:36,894 INFO  [AutoDeployDir:167] Processing Wiki-hook.xml
07:00:36,896 INFO  [HookExplodedTomcatListener:44] Modifying hook for D:\Liferay\liferay-portal-6.0.6\deploy\Wiki-hook.xml
  Copying 1 file to D:\Liferay\liferay-portal-6.0.6\tomcat-6.0.29\webapps\Wiki-hook\WEB-INF\classes
  Copying 1 file to D:\Liferay\liferay-portal-6.0.6\tomcat-6.0.29\webapps\Wiki-hook\WEB-INF\classes
  Copying 1 file to D:\Liferay\liferay-portal-6.0.6\tomcat-6.0.29\webapps\Wiki-hook\META-INF
07:00:37,482 INFO  [HookExplodedTomcatListener:50] Hook for D:\Liferay\liferay-portal-6.0.6\deploy\Wiki-hook.xml modified successfully
07:00:37,482 INFO  [BaseExplodedTomcatListener:45] Copying file D:\Liferay\liferay-portal-6.0.6\deploy\Wiki-hook.xml to D:\Liferay\liferay-portal-6.0.6\tomcat-6.0.29\conf\Catalina\localhost
...
INFO: Server startup in 47987 ms
19.4.2011 7:00:53 org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context [/Wiki-hook]
19.4.2011 7:00:53 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor Wiki-hook.xml
19.4.2011 7:00:53 org.apache.catalina.startup.HostConfig deployDescriptor
WARNING: A docBase D:\Liferay\liferay-portal-6.0.6\tomcat-6.0.29\webapps\Wiki-hook inside the host appBase has been specified, and will be ignored
19.4.2011 7:00:53 org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
19.4.2011 7:00:53 org.apache.catalina.core.StandardContext start
SEVERE: Context [/Wiki-hook] startup failed due to previous errors

Mam dojem, ze zrada je nekde v tom listeneru. Dal jsem tam ještě sekci catch, ale ta nic nevypisuje :-(

Import pak končí stejnou chybou jako posledně ERROR [InstancePool:100].

Nějaký tip?
thumbnail
12年前 に Tomas Polesovsky によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 676 参加年月日: 09/02/13 最新の投稿
Jj, dat to do web.xml hooku.

Je tam urcite jeste nekde chyba, protoze SEVERE: Error listenerStart je typicka hlaska, ze "je neco spatne, nevim co" emoticon Zkus se podivat treba na http://forum.springsource.org/showthread.php?t=27967&page=3.

A proto ani nefunguje ten importer, protoze SEVERE: Context [/Wiki-hook] startup failed due to previous error a ten ServletContextListener se nespusti.

Je treba se podivat co je chybou s tim SEVERE: Error listenerStart.

-- tom
12年前 に Jan Tošovský によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 565 参加年月日: 10/07/22 最新の投稿
Takovy chyby miluju :-(
Zkusil jsem prazdny listener a i tak to hlasi chyby. Takze chyba je uz v nacteni toho listeneru.
<listener>
<listener-class>net.cosi.wiki.MyServletContextListener</listener-class>
</listener>

A listener je v package net.cosi.wiki a jmenuje se MyServletContextListener. Tak nevim co je spatne...
thumbnail
12年前 に Milan Jaroš によって更新されました。

RE: WIKI importer

Expert 投稿: 268 参加年月日: 08/08/18 最新の投稿
Zkoušel jsi nastavit ten Log4j?
Nebo, nemůže být chyba způsobená verzí JRE, jak píšou v tom vlákně?
thumbnail
12年前 に Tomas Polesovsky によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 676 参加年月日: 09/02/13 最新の投稿
Nevim z hlavy, v cem by mohl byt problem. Nedelam s Liferay IDE, takze deployuju standardni WAR soubory, ne context.xml (jak to dela vetsina IDE vc. Liferay IDE).

Nicmene, prilozil jsem ti ukazkovy hook, ktery nakopiruj do adresare .../liferay-6.0.6/deploy a potom prejdi na adresu http://localhost:8080/test/index.jsp.

Nabusil jsem to za 12 minut, takze na to nejsem moc pysny, ale melo by to fungovat. Jestli se nekdy potkame, mam u tebe pivo ;)

-- tom

添付ファイル:

12年前 に Jan Tošovský によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 565 参加年月日: 10/07/22 最新の投稿
Diky moc za tu trpelivost a ten funkcni kod. Pri hledani rozdilu jsem narazil nahodou na nektere nastrahy Eclipse (build/deployment nefungovaly presne tak, jak jsem myslel), ale ted nad tim uz mam vetsi kontrolu. Dohledal jsem take chybu, ktera zpusobuje to selhani.
20.4.2011 6:02:01 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class net.cosi.MyServletContextListener
java.lang.NoClassDefFoundError: com/liferay/portlet/wiki/importers/WikiImporter
	at java.lang.ClassLoader.defineClass1(Native Method)
...
Caused by: java.lang.ClassNotFoundException: com.liferay.portlet.wiki.importers.WikiImporter
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)

Zradu vidim v tomhle kodu:
public class MyWikiImporter implements WikiImporter {

Znamena to snad, ze je treba zavolat InstancePool.get na vsechny importovane classy (pouzivam tam celou radu metod z com.liferay.portlet.wiki)? Nebo je za tam jina zrada?
12年前 に Jan Tošovský によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 565 参加年月日: 10/07/22 最新の投稿
Tak jsem aplikoval zavedeni tridy na WikiImporter (mozna je to zcestne) a stale mi to hazi java.lang.NoClassDefFoundError: com/liferay/portlet/wiki/importers/WikiImporter

Thread.currentThread().setContextClassLoader(com.liferay.portlet.wiki.importers.WikiImporter.class.getClassLoader());
com.liferay.portal.kernel.util.InstancePool.get(com.liferay.portlet.wiki.importers.WikiImporter.class.getName());


Jinak ta trida je soucasti portalu, tak je mi zahadou, proc se k ni Liferay najednou nezna...
thumbnail
12年前 に Tomas Polesovsky によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 676 参加年月日: 09/02/13 最新の投稿
Je to kvuli necemu, cemu se rika ClassLoader HELL emoticon

Je to celkem jednoduche, kdyz clovek vi, o co jde. Doporucuji tuto stranku: Apache Tomcat 6.0 Class Loader HOW-TO

Problem je v tom, ze tvuj MyWikiImporter referencuje com.liferay.portlet.wiki.WikiImporter. A kazdy je nahrany jinym classloaderem. Portal je nahrany WebApp classloaderem tomcatu webove aplikace ROOT (rikejme mu portalovy classloader). Kdezto tvuj hook ma jiny webapp classloader (rikejme mu portletovy).

Takze ted znovu a srozumitelneji - problem spociva v tom, ze tvuj portletovy classloader nevidi tridu, ktera je nahrana portalovym classloaderem a naopak. Portalovy classloader vidi tridu com.liferay.portlet..., ale nevidi tvou MyWikiImporter. My schvalne nacitame net.cosi.MyWikiImporter pomoci portletoveho classloaderu, ktery ale nedosahne na com.liferay.portlet...

Spravnym resenim je udelat to pomoci Ext Pluginu ;)

Dalsim hackem, ktery by tady mohl pomoct, je konfigurace kocouriho popisovace context.xml pro tvuj hook. Tam bychom uvedli, ze se ma pouzit pro nahravani webove aplikace jiz existujici classloader - ten portalovy. Zkus do sveho WARka umistit soubor /META-INF/context.xml, kam das definici <loader>:
<context> 
    <loader loaderClass="com.liferay.support.tomcat.loader.PortalClassLoader" /> 
</context> 


Doufam, ze je to srozumitelne emoticon

-- tom
12年前 に Jan Tošovský によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 565 参加年月日: 10/07/22 最新の投稿
Oceňuju ten polopatistický přístup, přesně jsi vystihl cílovou skupinu :-)

Znělo to slibně, ale upraví-li se context.xml:
1) je třeba restart Tomcatu (ta elegance hooku se trochu stírá)
2) skutečně to naběhne a funguje (klobouk dolů)
3) v logu je error: log4j:ERROR Could not create an Appender. Reported error follows.
java.lang.ClassCastException: org.apache.log4j.ConsoleAppender cannot be cast to org.apache.log4j.Appender

Našel jsem tuhle diskuzi: http://www.mail-archive.com/log4j-user@logging.apache.org/msg10508.html
kde to zmiňujou v souvislosti s více classloadery.

Lze to ignorovat, případně nějak fixnout? Pokud ne, asi ty hooky/hacky konečně vzdám.

Honza

PS: Tuhle výpomoc vidím minimálně na jedno, ale pětipivo :-)
thumbnail
12年前 に Tomas Polesovsky によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 676 参加年月日: 09/02/13 最新の投稿
ad 1, Prekvapuje me, ze je treba restartovat tomcat, protoze pri nahrani aplikace se cely WebAppClassLoader zahazuje a vytvari pokazde novy. Ale abych rekl pravdu, tak jsem to nikdy nevyuzil, znam to pouze ze zdrojaku tomcatu. Musel bych debugovat Tomcat, abych se podival, proc to nefunguje. Tady nechavam prostor ctenari emoticon
ad 2, to jsem rad emoticon
ad 3, to bude tim, ze si bundlujes v aplikaci znovu log4j.jar. Tim, ze se to ted nahrava stejnym classloaderem, tak ta trida je uz zavedena 2x. Stejne tak se vsemi ostatnimi tridami/JARy. Staci ti reference pouze pri compile-time, pro run-time tam nesmi ty tridy v balicku figurovat.

PS: OK, pokud se nekdy do Hradce dostanu emoticon
12年前 に Jan Tošovský によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 565 参加年月日: 10/07/22 最新の投稿
Rikal jsem si, ze to chovani muze byt ovlivneno Eclipse. Vytvoril jsem tedy samostatne WARko a deploynul ho pěšky bez Eclipse.
ad1) vlozenim do adresare deploy tomcatu se to rozbalilo, ale listener selhava (stara znama chyba - nenalezne WikiImporter). Narozdil od Eclipse IDE vsak nepomaha ani restart Tomcatu. To me trochu desi, protoze cesta pres WARko bude finalni zpusob nasazeni. Kdyz jsem po tom sel, zjistil, ze Eclipse prida do conf\Catalina\localhost\ soubor Wiki-hook.xml s obsahem
<context docbase="D:\Liferay\bundles\tomcat-6.0.29\webapps\Wiki-hook" reloadable="true" source="org.eclipse.jst.jee.server:Wiki-hook">
    <loader loaderClass="com.liferay.support.tomcat.loader.PortalClassLoader" />
</context>

To by to rozdilne chovani mohlo vysvetlovat.
ad3) v mem WARku zadne knihovny nejsou, ale po deploymentu se nejak zahadne pridaji do webapps\Wiki-hook\WEB-INF\lib dve: commons-logging.jar a log4j.jar.

Ale to jsou stejne posledni zoufale vykriky. Pomalu prepinam na Ext-plugin.
thumbnail
12年前 に Tomas Polesovsky によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 676 参加年月日: 09/02/13 最新の投稿
ad 1, bohuzel nemam cas se tomu povenovat emoticon
ad 3, mas pravdu, BaseDeployer to tam hazi automaticky sam. Nicmene to nevadi, ta trida uz je v portalu zavedena a vetsi problem je ted asi ta 1.

Kdyz to udelas tim Ext Pluginem, tak to alespon bude udelane korektne emoticon

-- tom
12年前 に Jan Tošovský によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 565 参加年月日: 10/07/22 最新の投稿
Tak jsem to nakonec udelal jako Ext Plugin. V mem pripade to nebylo o moc slozitejsi, spis naopak. Jen ten pozadavek redeploymentu vzdy do ciste kopie tomcatu, to je sila. Jen se chci ujitit, kdyz menim jen portal-ext.properties, ale jinak tam neco pridavam, pak to asi mohu vzdy preplacnout novou verzi, ne? Nemyslim, ze by to melo vliv na dalsi soucasti portalu, abych to musel pokazde nechat cistit.
thumbnail
12年前 に Tomas Polesovsky によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 676 参加年月日: 09/02/13 最新の投稿
S tim redeployem se zkus podivat semhle: http://issues.liferay.com/browse/LPS-14221. Ale nezkousel jsem to pro 6.0.6, snad to bude fungovat. Jinak pripravuji https://github.com/topolik/Extlet6, aby to bylo finalne v Liferay vsechno po kupe.

Do portal-ext.properties se davaji veci, ktere chces prepsat v puvodnim portal.properties.

Jinak muzes vyuzit jeste soubor portal-bundle.properties, protoze portal-ext.properties se typicky pouzivaji v tomcat/webapps/ROOT/WEB-INF/classes na konfiguraci portalu, takze by doslo ke kolizi.

Viz portal.properties:

    include-and-override=portal-bundle.properties
    include-and-override=${liferay.home}/portal-bundle.properties
    include-and-override=portal-ext.properties
    include-and-override=${liferay.home}/portal-ext.properties


-- tom
12年前 に Jiri Splichal によって更新されました。

RE: WIKI importer

New Member 投稿: 16 参加年月日: 10/09/27 最新の投稿
Ahoj, ohledně toho <context>-u, na tomcatu se timhle mechanismem daji sdilet classloadry mezi různejma webovejma aplikacema - takže používáš portálovej CL a vidíš všechny portálový třídy, jako kdyby tvoje aplikace byla přímo součástí LR. Nicméně na aplikačních serverech (glassfish, jboss...) takovejdle mechanismus pro sdílení neni, takže pokud bys chtěl použít něco jinýho než tomcat, zapomeň na to, je to trochu nestandartní přístup :-)
thumbnail
12年前 に Rasto Rehak によって更新されました。

RE: WIKI importer

Junior Member 投稿: 66 参加年月日: 07/03/08 最新の投稿
Ahoj
myslim, ze zdielany classloader funguje na viacerych AS. Konkretne na JBoss sa to konfigure cez cez WEB-INF/jboss-web.xml miesto context.xml:

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


<jboss-web>
	<class-loading java2classloadingcompliance="false">
		<loader-repository>
			com.liferay.portal:loader=liferay-portal
			<loader-repository-config>
				java2ParentDelegation=false
			</loader-repository-config>
		</loader-repository>
	</class-loading>
	<resource-ref>
		<res-ref-name>jdbc/DakaDatabaza</res-ref-name>
		<jndi-name>java:jdbc/MojDataSorce</jndi-name>
	</resource-ref>
</jboss-web>


No a potom je tu problem s novsim Tomcatom, tam zrazu inak funguje kopirovanie context.xml z META-INF warka do <tomcat>/conf/Catalina/localhost .
R
12年前 に Jiri Splichal によって更新されました。

RE: WIKI importer

New Member 投稿: 16 参加年月日: 10/09/27 最新の投稿
Vida, diky za info, zapomnel sem vzit v uvahu ze jboss je maskovanej tomcat :-)
Na GF sem to jednou nejak potreboval a vim ze to nak neslo, na WLS taky nevim jak. Clovek se porad uci.
J.
thumbnail
12年前 に Tomas Polesovsky によって更新されました。

RE: WIKI importer

Liferay Master 投稿: 676 参加年月日: 09/02/13 最新の投稿
Btw. myslim si, ze i pro GF by to mohlo nejak jit, protoze GF pouziva jako servletovy container Tomcat taky emoticon

-- tom
12年前 に Jiri Splichal によって更新されました。

RE: WIKI importer

New Member 投稿: 16 参加年月日: 10/09/27 最新の投稿
chudak kocour nakonec oddre vsechnoemoticon