Foren

Home » Liferay Portal » English » 3. Development

Kombinierte Ansicht Flache Ansicht Baumansicht
Threads [ Zurück | Nächste ]
toggle
Daniel Niklas
NoSuchBeanDefinitionException - Custom Velocity Tools and Liferay 6.1
20. Januar 2012 09:05
Antwort

Daniel Niklas

Rang: Junior Member

Nachrichten: 31

Eintrittsdatum: 8. November 2010

Neue Beiträge

Hi,

i have downloaded and deployed the hook within the project from Ray Augés example from Custom Velocity Tools and Liferay 6.0 on tomcat-liferay-bundle 6.1.

Unforunately i' getting an exception:
 116:54:28,875 ERROR [UtilLocator:56] com.liferay.portal.kernel.bean.BeanLocatorException: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'com.mytool.MyTool' is defined
 2com.liferay.portal.kernel.bean.BeanLocatorException: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'com.mytool.MyTool' is defined
 3        at com.liferay.portal.bean.BeanLocatorImpl.locate(BeanLocatorImpl.java:70)
 4        at com.liferay.portal.kernel.bean.PortletBeanLocatorUtil.locate(PortletBeanLocatorUtil.java:47)
 5        at com.liferay.portal.velocity.UtilLocator.findUtil(UtilLocator.java:52)
 6...
 7Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'com.mytool.MyTool' is defined
 8        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529)
 9        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java


Can you give me some hints whats going wrong here?

I've configured Debug-Loglevel for BeanLocatorImpl, but no interesting information here!?

Daniel
Daniel Niklas
RE: NoSuchBeanDefinitionException - Custom Velocity Tools and Liferay 6.1
23. Januar 2012 14:03
Antwort

Daniel Niklas

Rang: Junior Member

Nachrichten: 31

Eintrittsdatum: 8. November 2010

Neue Beiträge

what i've done is this:
  • created interface and impl
  • declaration for corresponding bean in WEB-INF/applicationContext.xml
  • configured PortletContextLoaderListener in web.xml

Is here missing something?
Can you give me a hint where to start debugging?

Thanks in advance
Daniel Niklas
David H Nebinger
RE: NoSuchBeanDefinitionException - Custom Velocity Tools and Liferay 6.1
23. Januar 2012 17:24
Antwort

David H Nebinger

Community Moderator

Rang: Liferay Legend

Nachrichten: 9293

Eintrittsdatum: 1. September 2006

Neue Beiträge

First I'd suggest downloading and using the test-velotool-hook provided by Ray as-is, just to determine if his is working in your environment.

Second, did you see his note at the end on using the contextPathName of your hook? If you're not using the right contextPathName, the bean locator lookup could be failing due to that reason...
Daniel Niklas
RE: NoSuchBeanDefinitionException - Custom Velocity Tools and Liferay 6.1
24. Januar 2012 13:24
Antwort

Daniel Niklas

Rang: Junior Member

Nachrichten: 31

Eintrittsdatum: 8. November 2010

Neue Beiträge

David H Nebinger:
First I'd suggest downloading and using the test-velotool-hook provided by Ray as-is, just to determine if his is working in your environment.

Yes, I've taken the test-velotool-hook "as-is".

David H Nebinger:
Second, did you see his note at the end on using the contextPathName of your hook? If you're not using the right contextPathName, the bean locator lookup could be failing due to that reason...

I've seen the note with the contextPathName, too. The example uses 'test-velotool-hook' as contextPathName. I think thats ok, because there is a directory with the same name beneath LIFERAY_HOME/tomcat-7.0.23/webapps/.
Eduardo Aragón
RE: NoSuchBeanDefinitionException - Custom Velocity Tools and Liferay 6.1
27. Februar 2012 08:19
Antwort

Eduardo Aragón

Rang: New Member

Nachrichten: 6

Eintrittsdatum: 8. Februar 2012

Neue Beiträge

I have the same problem. I configured the applicationContext.xml and web.xml, but seems the BeanLocator can't locate the defined bean.

Anyone has found the soolution??....
Sagar A Vyas
RE: NoSuchBeanDefinitionException - Custom Velocity Tools and Liferay 6.1
27. Februar 2012 22:23
Antwort

Sagar A Vyas

Rang: Liferay Master

Nachrichten: 656

Eintrittsdatum: 17. April 2009

Neue Beiträge

Hi Daniel,

Please try your stuff with following test-hook, which i have tested on my local machine its working fine to me.

Hope this help emoticon

Thanks,
Sagar Vyas
Anhänge: Test-hook.zip (5,6k)
Eduardo Aragón
RE: NoSuchBeanDefinitionException - Custom Velocity Tools and Liferay 6.1
28. Februar 2012 04:43
Antwort

Eduardo Aragón

Rang: New Member

Nachrichten: 6

Eintrittsdatum: 8. Februar 2012

Neue Beiträge

Sagar A Vyas:
Hi Daniel,

Please try your stuff with following test-hook, which i have tested on my local machine its working fine to me.

Hope this help emoticon

Thanks,
Sagar Vyas



I tried to deploy the hook you attached but doesn't work when defined spring beans. Same error org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'XXXXXXX' is defined.

It seems on this liferay version you must load the spring bean in some other way. I developed a script for liferay 6.0.6 and runs perfect. I deployed in liferay 6.1 GA and doesn't work.

Anyone knows another way to load spring beans?...
Sampsa Sohlman
RE: NoSuchBeanDefinitionException - Custom Velocity Tools and Liferay 6.1
17. März 2012 04:03
Antwort

Sampsa Sohlman

LIFERAY STAFF

Rang: Regular Member

Nachrichten: 220

Eintrittsdatum: 27. September 2007

Neue Beiträge

The question is this done intentionally or is it bug.

Well, I'm trying to debug this through and find a reason why it is working differently.

So here a little progress:

With Liferay 6.0.6 and 6.1.0 both reason ends up at com.liferay.portal.bean.BeanLocatorImpl method doLocate(..) and at line "return _applicationContext.getBean(name);"

When I inspect that "_applicationContext"

at 6.0.6 I get with debug
 1_applicationContext.getClassLoader()
 2     (org.apache.catalina.loader.WebappClassLoader) WebappClassLoader
 3  context:
 4  delegate: false
 5  repositories:
 6    /WEB-INF/classes/
 7----------> Parent Classloader:
 8org.apache.catalina.loader.StandardClassLoader@6d3f7281
 9
10_applicationContext.getDisplayName()
11     (java.lang.String) Root WebApplicationContext
12    
13_applicationContext.getBeanDefinitionCount()
14     (int) 1



and 6.1.0 I get with debug

 1_applicationContext.getClassLoader()
 2     (org.apache.catalina.loader.WebappClassLoader) WebappClassLoader
 3  context:
 4  delegate: false
 5  repositories:
 6    /WEB-INF/classes/
 7----------> Parent Classloader:
 8org.apache.catalina.loader.StandardClassLoader@11a06e38
 9
10_applicationContext.getDisplayName()
11     (java.lang.String) Root WebApplicationContext
12
13_applicationContext.getBeanDefinitionCount()
14     (int) 0



So it seems that bean is not getting registered to _applicationContext at 6.1.0, why is that? Where the bean registration to _applicationContext happen?
Sampsa Sohlman
RE: NoSuchBeanDefinitionException - Custom Velocity Tools and Liferay 6.1
17. März 2012 12:12
Antwort

Sampsa Sohlman

LIFERAY STAFF

Rang: Regular Member

Nachrichten: 220

Eintrittsdatum: 27. September 2007

Neue Beiträge

It is so good that Liferay is open source. So the problems can be solved just by studying the code.

Finally the problem was traced to

com.liferay.portal.spring.context.PortletApplicationContext class where was new method comparing to 6.0.6.
1    protected String[] getDefaultConfigLocations() {
2        return new String[0];
3    }


and from version control I could trace that change to issue LPS-21104

So the solution to fix it to add path to applicationContext.xml to web.xml with context-params

1    <context-param>
2        <param-name>portalContextConfigLocation</param-name>
3        <param-value>/WEB-INF/applicationContext.xml</param-value>
4    </context-param>   
Andy Harb
RE: NoSuchBeanDefinitionException - Custom Velocity Tools and Liferay 6.1
29. April 2013 10:30
Antwort

Andy Harb

Rang: Junior Member

Nachrichten: 66

Eintrittsdatum: 22. Oktober 2009

Neue Beiträge

Thanks Sampsa!