Leichtgewichtige JEE Entwicklung mit dem Spring Framework

Leichtgewichtige JEE Entwicklung mit dem Spring Framework

Posts 1-5 of 5
  • Frederik Dinkelaker
    Frederik Dinkelaker
    The 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
  • Eberhard WolffEberhard Wolff is a contact of your contacts
    Eberhard Wolff    Group moderator
    The company name is only visible to registered members.
    Re: ViewResolver
    Hallo,

    wie genau sieht der Stack Trace der IllegalStateException aus?

    Gruß,

    Eberhard Wolff
  • Frederik Dinkelaker
    Frederik Dinkelaker
    The 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!
  • Eberhard WolffEberhard Wolff is a contact of your contacts
    Eberhard Wolff    Group moderator
    The 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
  • Frederik Dinkelaker
    Frederik Dinkelaker
    The 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