выключэнне стварэння Bean вясной мабільны

I am getting the following exception while using sample

укладзенае выключэнне <�Код> org.springframework.beans.BeanInstantiationException: Не атрымалася стварыць асобнік клас боба [org.springframework.mobile.device.Device]: Указаны клас ўяўляе сабой інтэрфейс] з першапрычынай

Мой кантролер выглядае наступным чынам:

package com.srccodes.spring.controller;

import java.util.logging.Logger;
import org.springframework.mobile.device.Device;
import org.springframework.mobile.device.site.SitePreference;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author Abhijit Ghosh
 * @version 1.0
 */
@Controller
public class SpringMobileHelloController {
    private static final Logger logger = Logger.getLogger(SpringMobileHelloController.class.getName());

    @RequestMapping("/")
    public String sayHello(SitePreference sitePreference, Device device, Model model) {
        logger.info("SitePreference : " + sitePreference);
        logger.info("Device : " + device);

        model.addAttribute("message", "Hello World!");

        return "helloWorld";
    }
}


My dispatcher-servlet.xml is:

 (some parts omitted)

    

    
        
                        
            
        
    

    
        <!-- Resolve the device which has generated the request -->
        

        <!-- User's site preference -->
        

        <!-- Redirects users to the device specific site -->
        
            
            
            
        
    


    <!-- Device aware view resolving -->
    
        
            
                
                
            
        

        
        
        
    


Калі ласка, дапамажыце мне, як я пачатковец у вясновым mobile.This прыкладу даступны ў крыніцы вясны чыноўніка website.It кажа, што прылада ўяўляе сабой інтэрфейс, але я выкарыстаў яго рэалізуюць класы only.Basically Я думаю, што яго памылку ў дыспетчарскай сэрвлета. XML

1
Фільтруе прылада дапамагае вам @ user2354150? Ці вы знайшлі нешта іншае, каб выкарыстоўваць?
дададзена аўтар Deividi Cavarzan, крыніца
Фільтруе прылада дапамагае вам @ user2354150? Ці вы знайшлі нешта іншае, каб выкарыстоўваць?
дададзена аўтар Deividi Cavarzan, крыніца
Можа гэта дапамагчы?
дададзена аўтар NINCOMPOOP, крыніца

8 адказы

Паспрабуйце выкарыстоўваць фільтр прылады:

    
        deviceResolverRequestFilter
        org.springframework.mobile.device.DeviceResolverRequestFilter
    

Ва ўсякім выпадку, вы можаце атрымаць прылада з DeviceUtils , выкарыстоўваючы HttpServletRequest , як у гэтым прыкладзе апрацоўшчык ..:

public boolean preHandle(HttpServletRequest request, HttpServletResponse arg1, Object arg2) throws Exception {
        Device device = DeviceUtils.getCurrentDevice(request);
...
}

У мяне такая ж праблема, і вырашыць яе з другім падыходам.

4
дададзена

Паспрабуйце выкарыстоўваць фільтр прылады:

    
        deviceResolverRequestFilter
        org.springframework.mobile.device.DeviceResolverRequestFilter
    

Ва ўсякім выпадку, вы можаце атрымаць прылада з DeviceUtils , выкарыстоўваючы HttpServletRequest , як у гэтым прыкладзе апрацоўшчык ..:

public boolean preHandle(HttpServletRequest request, HttpServletResponse arg1, Object arg2) throws Exception {
        Device device = DeviceUtils.getCurrentDevice(request);
...
}

У мяне такая ж праблема, і вырашыць яе з другім падыходам.

4
дададзена

Check if is not defined anywhere else. Simply add:


    
        

        
    

2
дададзена
Гэта апісана ў 2.3.2 тут: docs.spring .io/веснавых мабільнага/дакументы/ток/спасылка/HTML/& hellip; . Вядома, я наткнуўся на гэта, толькі чытанне 2.3.1
дададзена аўтар Prashant Saraswat, крыніца

Check if is not defined anywhere else. Simply add:


    
        

        
    

2
дададзена
Гэта апісана ў 2.3.2 тут: docs.spring .io/веснавых мабільнага/дакументы/ток/спасылка/HTML/& hellip; . Вядома, я наткнуўся на гэта, толькі чытанне 2.3.1
дададзена аўтар Prashant Saraswat, крыніца

У дадатак да leogps адказу Ніжэй прыводзіцца Java Config

    @Bean
    public DeviceHandlerMethodArgumentResolver deviceHandlerMethodArgumentResolver() {
            return new DeviceHandlerMethodArgumentResolver();
        }

     @Override
     public void addArgumentResolvers(List argumentResolvers) {
            argumentResolvers.add(deviceHandlerMethodArgumentResolver());
        }
0
дададзена

У дадатак да leogps адказу Ніжэй прыводзіцца Java Config

    @Bean
    public DeviceHandlerMethodArgumentResolver deviceHandlerMethodArgumentResolver() {
            return new DeviceHandlerMethodArgumentResolver();
        }

     @Override
     public void addArgumentResolvers(List argumentResolvers) {
            argumentResolvers.add(deviceHandlerMethodArgumentResolver());
        }
0
дададзена

You have to add argument resolver for this. Follow this

Калі вы хочаце, каб перадаць бягучае прыладу ў якасці аргументу да аднаго з вашых @Controller метадаў налады DeviceWebArgumentResolver:


  
    
  

У якасці альтэрнатывы вы можаце наладзіць DeviceHandlerMethodArgumentResolver з выкарыстаннем канфігурацыі Java на аснове:

@Bean
public DeviceHandlerMethodArgumentResolver deviceHandlerMethodArgumentResolver() {
    return new DeviceHandlerMethodArgumentResolver();
}

@Override
public void addArgumentResolvers(List argumentResolvers) {
    argumentResolvers.add(deviceHandlerMethodArgumentResolver());
}
0
дададзена

You have to add argument resolver for this. Follow this

Калі вы хочаце, каб перадаць бягучае прыладу ў якасці аргументу да аднаго з вашых @Controller метадаў налады DeviceWebArgumentResolver:


  
    
  

У якасці альтэрнатывы вы можаце наладзіць DeviceHandlerMethodArgumentResolver з выкарыстаннем канфігурацыі Java на аснове:

@Bean
public DeviceHandlerMethodArgumentResolver deviceHandlerMethodArgumentResolver() {
    return new DeviceHandlerMethodArgumentResolver();
}

@Override
public void addArgumentResolvers(List argumentResolvers) {
    argumentResolvers.add(deviceHandlerMethodArgumentResolver());
}
0
дададзена