留言板
Spring context konfliktus
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
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
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
É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
Zsolt - Jácint Balogh,修改在10 年前。
RE: Spring context konfliktus
Junior Member 帖子: 91 加入日期: 13-10-9 最近的帖子
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
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
Zsolt - Jácint Balogh,修改在10 年前。
RE: Spring context konfliktus
Junior Member 帖子: 91 加入日期: 13-10-9 最近的帖子
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
Az az issue nem kapcsolódik a témához mert ez a két portletek nem függenek egymástól.
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
Az az issue nem kapcsolódik a témához mert ez a két portletek nem függenek egymástól.
Zsolt - Jácint Balogh,修改在10 年前。
RE: Spring context konfliktus
Junior Member 帖子: 91 加入日期: 13-10-9 最近的帖子
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
@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
Szia!
Amit itt írnak: http://stackoverflow.com/questions/13739905/liferay-spring-spring-web-mvc-autowired-dont-work , azt nézted/be van állítva?
Amit itt írnak: http://stackoverflow.com/questions/13739905/liferay-spring-spring-web-mvc-autowired-dont-work , azt nézted/be van állítva?
Zsolt - Jácint Balogh,修改在10 年前。
RE: Spring context konfliktus
Junior Member 帖子: 91 加入日期: 13-10-9 最近的帖子
Szia
Köszönöm a választ!
Nem volt betéve az a ket listener. Betettem de így sem működik
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?
Köszönöm a választ!
Nem volt betéve az a ket listener. Betettem de így sem működik
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?
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
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
Zsolt - Jácint Balogh,修改在10 年前。
RE: Spring context konfliktus
Junior Member 帖子: 91 加入日期: 13-10-9 最近的帖子
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
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
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!
Zsolt - Jácint Balogh,修改在10 年前。
RE: Spring context konfliktus
Junior Member 帖子: 91 加入日期: 13-10-9 最近的帖子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