Leichtgewichtige JEE Entwicklung mit dem Spring Framework
Posts 1-5 of 5
-
Frederik DinkelakerThe company name is only visible to registered members.ViewResolver
Hallo,
ich bin "neu" in der Spring Entwicklung und möchte es zur MVC-Umsetzung bei Portlets verwenden. Es geht also im Kern um die Portleterweiterung von Spring.
Ich habe nun das Problem, dass ich selbst eine simple Portletapplikation nicht "zum Laufen" kriege. Das Deployment funktioniert, allerdings resultiert der Aufruf in einer IllegalStateException, die auf Fehler beim Initialisieren der "viewResolver" Bean verweist. Die ist folgendermaßen im context config file definiert:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
Nach meinem Verständnis muss diese Definition im portlet context definiert werden und sollte bewirken, dass Views auf die entsprechende Datei "/WEB-INF/jsp/viewname.jsp" geleitet werden.
Mit der Fehlermeldung kann ich allerdings nicht wirklich viel anfangen und meine Recherchen zu dem Thema liefen bisher ins Leere.
Über Hilfe und jedwege Weisheiten wäre ich sehr dankbar!
Gruß,
Frederik Dinkelaker
- 11 Feb 2007, 7:04 pm
-

Eberhard Wolff Group moderatorThe company name is only visible to registered members.Re: ViewResolver
Hallo,
wie genau sieht der Stack Trace der IllegalStateException aus?
Gruß,
Eberhard Wolff
- 12 Feb 2007, 07:11 am
-
Frederik DinkelakerThe company name is only visible to registered members.Re^2: ViewResolver
Die log files zeigen folgendes:
[/WEB-INF/mvctest-portlet.xml]: Initialization of bean failed; nested exception is java.lang.IllegalStateException: Cannot satisfy ServletContextAware for bean 'viewResolver' without ServletContext
Caused by:
java.lang.IllegalStateException: Cannot satisfy ServletContextAware for bean 'viewResolver' without ServletContext
at org.springframework.web.context.support.ServletContextAwareProcessor.postProcessBeforeInitialization(ServletContextAwareProcessor.java:80)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:296)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:843)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:419)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:241)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:152)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:253)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:331)
at org.springframework.web.portlet.context.AbstractRefreshablePortletApplicationContext.refresh(AbstractRefreshablePortletApplicationContext.java:160)
at org.springframework.web.portlet.FrameworkPortlet.createPortletApplicationContext(FrameworkPortlet.java:352)
at org.springframework.web.portlet.FrameworkPortlet.initPortletApplicationContext(FrameworkPortlet.java:299)
at org.springframework.web.portlet.FrameworkPortlet.initPortletBean(FrameworkPortlet.java:269)
at org.springframework.web.portlet.PortletBean.init(PortletBean.java:114)
at javax.portlet.GenericPortlet.init(GenericPortlet.java:98)
at org.apache.jetspeed.factory.JetspeedPortletInstance.init(JetspeedPortletInstance.java:84)
...
Wo hier der Bezug zum Servlet herkommt, verstehe ich ehrlich gesagt noch nicht. Muss die bean Definition eventuell in den Servlet Context? Wenn ja, wieso ausgerechnet diese? Sie sehen, ich stehe noch ziemlich am Anfang, finde die Thematik aber mehr als spannend.
Vielen Dank schon einmal für die Hilfe!
- 12 Feb 2007, 3:59 pm
-

Eberhard Wolff Group moderatorThe company name is only visible to registered members.Re^3: ViewResolver
Hi,
wie unter
http://static.springframework.org/spring/docs/2.0.x/referenc... in 16.3 zu lesen, muss man das ViewRendererServlet konfigurieren. Der View Resolver muss dann im Web Application weiten ApplicationContext definiert sein, d.h. üblicherweise in /WEB-INF/applicationContext.xml .
Hoffe, das hilft.
Eberhard Wolff
- 12 Feb 2007, 5:44 pm
-
Frederik DinkelakerThe company name is only visible to registered members.Re^4: ViewResolver
So, jetzt läuft es.
Ich hatte scheinbar folgende zwei Fehler gemacht:
1. Die viewResolver Definition war wirklich einfach im falschen Context (portlet statt application context).
2. Es war kein ContextLoaderListener definiert.
Gruß und vielen Dank noch einmal für die Hilfe,
Frederik Dinkelaker
- 12 Feb 2007, 6:50 pm
