Fórumok

Spring context konfliktus

thumbnail
Zsolt - Jácint Balogh, módosítva 10 év-val korábban

Spring context konfliktus

Junior Member Bejegyzések: 91 Csatlakozás dátuma: 2013.10.09. Legújabb bejegyzések
Sziasztok,

Egy különös problémával küzdök már egy ideje:
Van két egymástól független struts alapú portletem, a függőségeket springel húzom be.

Külön-külön mindkét portlet működik szépen.
A probléma akkor jelentkezik ha újraindítom a szervert vagy ha egymás után deploy-olom be mindkettőt.
Ilyenkor úgy tűnik, hogy az utoljára deploy-olt portlet spring contextusa felülírja az előtte deploy-olt portlet contextjet.

1. indítás
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [ro.codespring.szabadsag.exchange.framework.bo.IExchangeBo] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

2. indítás

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [ro.codespring.szabadsag.calendar.framework.onomastic.bo.INameDayBo] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

A két application xml file:

calendarApplicationContext.xml
...
<context:component-scan base-package="ro.codespring.szabadsag.calendar">
<context:exclude-filter type="annotation"
expression="org.springframework.context.annotation.Configuration" />
</context:component-scan>
...

exchangeApplicationContext.xml
...
<context:component-scan base-package="ro.codespring.szabadsag.exchange">
<context:exclude-filter type="annotation"
expression="org.springframework.context.annotation.Configuration" />
</context:component-scan>
...

Ha a ujradeployolom a hibat dobo portletet akkor müködik mindkettő.

Valakinek van valami ötlete, hogy mi a probléma?
Valamilyen megoldást tudtok-e javasolni?

Liferay 6.1.2GA3 at használok jboss as7-el.

Köszönöm,
Zsolt
thumbnail
Vilmos Papp, módosítva 10 év-val korábban

RE: Spring context konfliktus

Liferay Master Bejegyzések: 529 Csatlakozás dátuma: 2010.10.21. Legújabb bejegyzések
Szia,

Érdemes lenne megnézni, hogy a HotDeployer-ek milyen sorrendben hívódnak. Van egy javítás ami kapcsolódhat a te prodblémádhoz: https://issues.liferay.com/browse/LPS-29665, de elvileg az általad használt verzióban ez benne van, de biztonság kedvéért érdemes lenne megnézni.

A portletjeid között van függőség definiálva a liferay-plugin-package.properties-ben?

Üdv.
Vili
thumbnail
Zsolt - Jácint Balogh, módosítva 10 év-val korábban

RE: Spring context konfliktus

Junior Member Bejegyzések: 91 Csatlakozás dátuma: 2013.10.09. Legújabb bejegyzések
Köszönöm a gyors választ.
A hot deployok sorrendjét még nem néztem meg.

Két strutsos dependencia van beállitva a liferay-plugin-package.properties -ben:

portal-dependency-jars=\
struts-el.jar,\
struts.jar

Nem hinném, hogy ezek kavarhatnak be...

Udv,
Zsolti
thumbnail
Zsolt - Jácint Balogh, módosítva 10 év-val korábban

RE: Spring context konfliktus

Junior Member Bejegyzések: 91 Csatlakozás dátuma: 2013.10.09. Legújabb bejegyzések
A HotDeployer-ek abban a sorrendben hívódnak meg ahogy a deployments listában szerepelnek újraindításkor, egyébként ahogy a deploy könyvtárba bekerülnek.

13:26:51,570 INFO [stdout] (MSC service thread 1-2) 13:26:51,569 INFO [MSC service thread 1-2][PortletHotDeployListener:295] Registering portlets for exchange-portlet
13:27:00,752 INFO [stdout] (MSC service thread 1-1) 13:27:00,751 INFO [MSC service thread 1-1][PortletHotDeployListener:454] 1 portlet for calendar-portlet is available for use


ebben az esetben az exchange-portlet nem működik emoticon
Az az issue nem kapcsolódik a témához mert ez a két portletek nem függenek egymástól.
thumbnail
Zsolt - Jácint Balogh, módosítva 10 év-val korábban

RE: Spring context konfliktus

Junior Member Bejegyzések: 91 Csatlakozás dátuma: 2013.10.09. Legújabb bejegyzések
Végül találtam egy megoldást.

@Autowired helyett:

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
BeanFactory factory = (BeanFactory) context;

myBo= factory.getBean(IMyBo.class);

ezt használtam.

Ha valaki talált megoldást arra, hogy, hogy lehet használni a @Autowired -annotációt kérem ossza meg velem.

Zsolti
thumbnail
Vilmos Papp, módosítva 10 év-val korábban

RE: Spring context konfliktus

Liferay Master Bejegyzések: 529 Csatlakozás dátuma: 2010.10.21. Legújabb bejegyzések
thumbnail
Zsolt - Jácint Balogh, módosítva 10 év-val korábban

RE: Spring context konfliktus

Junior Member Bejegyzések: 91 Csatlakozás dátuma: 2013.10.09. Legújabb bejegyzések
Szia

Köszönöm a választ!

Nem volt betéve az a ket listener. Betettem de így sem működik emoticon

A web.xml-em most így nez ki:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

<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>
</servlet>

<!-- Spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>com.liferay.portal.kernel.servlet.SecurePluginContextListener</listener-class>
</listener>
<listener>
<listener-class>com.liferay.portal.kernel.servlet.PortletContextListener</listener-class>
</listener>

<servlet-mapping>
<servlet-name>PortletActionServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<jsp-config>
<taglib>
<taglib-uri>http://struts.apache.org/tags-bean</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://portals.apache.org/bridges/struts/tags-portlet-html</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-portlet-html.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://struts.apache.org/tags-logic</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://struts.apache.org/tags-nested</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://struts.apache.org/tags-tiles</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://liferay.com/tld/aui</taglib-uri>
<taglib-location>
/WEB-INF/tld/aui.tld
</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://java.sun.com/jstl/core_rt</taglib-uri>
<taglib-location>/WEB-INF/tld/c-rt.tld</taglib-location>
</taglib>

</jsp-config>

</web-app>

Egyébb ötlet?
thumbnail
Vilmos Papp, módosítva 10 év-val korábban

RE: Spring context konfliktus

Liferay Master Bejegyzések: 529 Csatlakozás dátuma: 2010.10.21. Legújabb bejegyzések
Szia,

Sajnos most nem nagyon jut más az eszembe, ki kellene debuggolni mi is történik. Azt javaslom, dobd be az angol nyelvű témák közé, mert sokan használnak SpringMVC-s portleteket, ha nagyon átltalános a dolog, akkor biztos valaki belefutott már és tudja a választ/workaround-ot. Én jómagam még nem csináltam SpringMVC-s portletet, így ilyen mélységig ezt nem tudom megmondani, max. ha neki állok debuggolni, de arra most nem nagyon tudok időt szakítani.

Ha esetleg mások is találkoztak ezzel, de nem jutottak semmire, akkor pedig kellene egy JIRA ticket, és jó néhány szavazat rá, hogy lássák a core engineerek is, hogy ez fontos és akkor hamarabb javításra tud kerülni.

6.2-vel amúgy ugyanúgy jön a hiba?

Üdv.
Vili
thumbnail
Zsolt - Jácint Balogh, módosítva 10 év-val korábban

RE: Spring context konfliktus

Junior Member Bejegyzések: 91 Csatlakozás dátuma: 2013.10.09. Legújabb bejegyzések
Szia!

Jött egy fontosabb task ezért ez most fel lett függesztve. Amint időm engedi kiprobálom 6.2-es verzioval és teszek fel egy kérdést az angol forumra is.

Nagyon köszönöm a rám szánt időt!
Most egy másik kérdésem van ezért annak nyitok egy másik szálat.

Zsolti
thumbnail
Vilmos Papp, módosítva 10 év-val korábban

RE: Spring context konfliktus

Liferay Master Bejegyzések: 529 Csatlakozás dátuma: 2010.10.21. Legújabb bejegyzések
Rendben, majd légy szíves linkeld be ide az angol nyelvű thread-et, hogy ha ott lenne megoldás akkor mások is megtalálják könyebben!
thumbnail
Zsolt - Jácint Balogh, módosítva 10 év-val korábban

RE: Spring context konfliktus

Junior Member Bejegyzések: 91 Csatlakozás dátuma: 2013.10.09. Legújabb bejegyzések
Vilmos Papp:
Rendben, majd légy szíves linkeld be ide az angol nyelvű thread-et, hogy ha ott lenne megoldás akkor mások is megtalálják könyebben!



Válasz még nincs de azért beteszem a linket:
https://www.liferay.com/community/forums/-/message_boards/message/31689690