Announcement Announcement Module
Collapse
No announcement yet.
Spring Mobile + Struts2 Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Spring Mobile + Struts2

    Trying to get a simple Spring Mobile + Struts2 web application going but having some troubles getting the basics to work...

    In web.xml
    Code:
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/applicationContext.xml
        </param-value>
    </context-param> 
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <filter>
        <filter-name>deviceResolverRequestFilter</filter-name>
        <filter-class>org.springframework.mobile.device.DeviceResolverRequestFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>deviceResolverRequestFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    In applicationContext.xml
    Code:
    <beans:beans xmlns="http://www.springframework.org/schema/mvc"
            xmlns:beans="http://www.springframework.org/schema/beans"
            xmlns:device="http://www.springframework.org/schema/mobile/device"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xsi:schemaLocation="http://www.springframework.org/schema/mvc 
                    http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
                    http://www.springframework.org/schema/beans 
                    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/mobile/device 
                    http://www.springframework.org/schema/mobile/device/spring-mobile-device-1.0.xsd">
    
        <!-- Interceptors that execute common control logic across multiple requests -->
        <interceptors>
            <!-- Detects the client's Device -->
            <beans:bean class="org.springframework.mobile.device.DeviceResolverHandlerInterceptor" />
        </interceptors>
    
    </beans:beans>
    In my Java class:
    Code:
    public class TestAction extends ActionSupport implements ServletRequestAware {
    
        // So that we can lookup the current Device 
        private HttpServletRequest request;
    
        public void setServletRequest(HttpServletRequest request) {
            this.request = request;
        }
    
        @Override
        public String execute() {
            Device currentDevice = DeviceUtils.getCurrentDevice(request);
            if (currentDevice.isMobile()) // <-- fails here with NPE
    Why is the device not set and resulting as null?

    Log files seem to indicate a problem with setting the interceptor but I'm still not sure where I went wrong.

    Code:
    2012-05-29 09:36:36,696 DEBUG [ConstructorResolver.java:201] : Ignoring constructor [public org.springframework.web.servlet.handler.MappedInterceptor(java.lang.String[],org.springframework.web.context.request.WebRequestInterceptor)] of bean 'org.springframework.web.servlet.handler.MappedInterceptor#0': org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.web.servlet.handler.MappedInterceptor#0': Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.web.context.request.WebRequestInterceptor]: Could not convert constructor argument value of type [org.springframework.mobile.device.DeviceResolverHandlerInterceptor] to required type [org.springframework.web.context.request.WebRequestInterceptor]: Failed to convert value of type 'org.springframework.mobile.device.DeviceResolverHandlerInterceptor' to required type 'org.springframework.web.context.request.WebRequestInterceptor'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.springframework.mobile.device.DeviceResolverHandlerInterceptor] to required type [org.springframework.web.context.request.WebRequestInterceptor]: no matching editors or conversion strategy found
    Cross posted to Stackoverflow
    Last edited by nmc; Jun 11th, 2012, 03:38 PM.
Working...
X