Bonjour à tous,

Je débute totalement sur Spring, j'essaie depuis 3 jours de créer une simple portlet HelloWorld en utlisant Spring portlet MVC 3.0, j'ai cherché sur ce forum ainsi que sur d'autres et ai suivi plusieurs tuto mais principalement celui-là : http://books.dzone.com/articles/hell...-3-portlet-MVC
Seulement une fois le déploiement sous Glassfish (v.3.0.0), la portlet n'apparaît pas dans la liste d'ajout de portlets dans Liferay (v.6.0.0).

Je pense avoir ajouter tous les jars nécessaires.

Quand je regarde les logs du serveur, j'ai cette erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
[#|2010-06-10T12:55:07.053+0000|INFO|glassfishv3.0|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=29;_ThreadName=Thread-1;|12:55:07,037 ERROR [HotDeployUtil:107] com.liferay.portal.kernel.deploy.hot.HotDeployException: Error registering portlets for HelloWorld
com.liferay.portal.kernel.deploy.hot.HotDeployException: Error registering portlets for HelloWorld
	at com.liferay.portal.kernel.deploy.hot.BaseHotDeployListener.throwHotDeployException(BaseHotDeployListener.java:48)
	at com.liferay.portal.deploy.hot.PortletHotDeployListener.invokeDeploy(PortletHotDeployListener.java:135)
	at com.liferay.portal.kernel.deploy.hot.HotDeployUtil._doFireDeployEvent(HotDeployUtil.java:104)
	at com.liferay.portal.kernel.deploy.hot.HotDeployUtil._fireDeployEvent(HotDeployUtil.java:149)
	at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:35)
	at com.liferay.portal.kernel.servlet.PortletContextListener.portalInit(PortletContextListener.java:104)
	at com.liferay.portal.kernel.util.PortalInitableUtil.init(PortalInitableUtil.java:39)
	at com.liferay.portal.kernel.servlet.PortletContextListener.contextInitialized(PortletContextListener.java:100)
	at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:4591)
	at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:535)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:5193)
	at com.sun.enterprise.web.WebModule.start(WebModule.java:499)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:928)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:912)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:694)
	at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1933)
	at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1605)
	at com.sun.enterprise.web.WebApplication.start(WebApplication.java:90)
	at org.glassfish.internal.data.EngineRef.start(EngineRef.java:126)
	at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:241)
	at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:236)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:339)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:310)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
	at org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:141)
	at org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:573)
	at org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:459)
	at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:391)
	at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:376)
	at org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:195)
	at java.util.TimerThread.mainLoop(Timer.java:512)
	at java.util.TimerThread.run(Timer.java:462)
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
	at org.springframework.web.portlet.DispatcherPortlet.<clinit>(DispatcherPortlet.java:219)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:355)
	at java.lang.Class.newInstance(Class.java:308)
	at com.liferay.portal.deploy.hot.PortletHotDeployListener.initPortlet(PortletHotDeployListener.java:507)
	at com.liferay.portal.deploy.hot.PortletHotDeployListener.doInvokeDeploy(PortletHotDeployListener.java:292)
	at com.liferay.portal.deploy.hot.PortletHotDeployListener.invokeDeploy(PortletHotDeployListener.java:132)
	... 35 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:949)
	at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1420)
	... 45 more
|#]
Le truc c'est que je ne suis absolument pas sûr de la configuration de ma portlet, j'entends par là que je ne suis pas sûr du contenu des fichiers xml, ni même de leur emplacement dans le projet, ni des fichiers properties etc...

voici l'arborescence de mon projet :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- src
   - nom du package
      + HelloWorldController.java
- WebContent
   - WEB-INF
      - jsp
         HelloWorld_edit.jsp
         HelloWorld_help.jsp
         HelloWorld_view.jsp
         HelloWorld.jsp
      + lib
      helloWorld-portlet.xml
      liferay-display.xml
      liferay-portlet.xml
      portlet.xml
      web.xml
   applicationContext.xml
   Langage-ext.properties

Merci d'avance pour votre aide !

Bonne journée !