2014-09-26 10 views
12

के रूप में तैनात वसंत-बूट अनुप्रयोग के लिए डिफ़ॉल्ट स्वागत पृष्ठ बदलना मैं उत्पादन में युद्ध के रूप में तैनात किए जा रहे वसंत-बूट एप्लिकेशन के लिए डिफ़ॉल्ट स्वागत पृष्ठ बदलने का एक तरीका खोजने का प्रयास कर रहा था लेकिन मैं ' वेब.एक्सएमएल फ़ाइल के बिना इसे करने का कोई तरीका नहीं ढूंढता।युद्ध

प्रलेखन के अनुसार हम इस कोड के साथ EmbeddedServletContainerFactory का उपयोग कर ऐसा कर सकते हैं:

@Bean 
public EmbeddedServletContainerFactory servletContainer() { 

    TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); 

    TomcatContextCustomizer contextCustomizer = new TomcatContextCustomizer() { 
     @Override 
     public void customize(Context context) { 
      context.addWelcomeFile("/<new welcome file>"); 
     } 
    }; 
    factory.addContextCustomizers(contextCustomizer); 

    return factory; 
} 

हालांकि, हम एक युद्ध फ़ाइल बनाने और उसे लागू करने के लिए बिल्ला और नहीं एंबेडेड बिलाव का उपयोग कर रहे के रूप में, इस isn कुछ भी नहीं कर रहा हूँ।

कोई विचार? अगर हमें वास्तव में web.xml फ़ाइल जोड़ने की ज़रूरत है, तो हम इसे कैसे कर सकते हैं और अभी भी वसंत बूट का उपयोग कर सकते हैं? क्या हमें DisapcherServlet के अनुप्रयोग संदर्भ के रूप में एप्लिकेशन बीन (मुख्य विधि के साथ) निर्दिष्ट करना चाहिए? दस्तावेज इसके बारे में बहुत स्पष्ट नहीं है।

पुराने सर्वलेट कंटेनर को सर्वलेट 3.0 में प्रयुक्त ServletContextInitializer बूटस्ट्रैप प्रक्रिया के लिए समर्थन नहीं है। आप अभी भी इन कंटेनरों में स्प्रिंग और स्प्रिंग बूट का उपयोग कर सकते हैं लेकिन आपको अपने एप्लिकेशन में web.xml जोड़ने की आवश्यकता होगी और इसे डिस्पैचर सर्वलेट के माध्यम से एप्लिकेशन कॉन्टेक्स्ट लोड करने के लिए कॉन्फ़िगर करें।

अग्रिम धन्यवाद!

पेड्रो

+1

तथ्य यह है कि आपके पास web.xml है इसका मतलब यह नहीं है कि ServletContainerInitializer अब और काम नहीं करता है। बस एक 'स्वागत पृष्ठ' टैग के साथ फ़ाइल में एक web.xml ड्रॉप करें। –

उत्तर

21

यह बहुत मुश्किल नहीं करने के लिए ... तुम बस डिफ़ॉल्ट मानचित्रण अग्रेषित करने के लिए जरूरत है ...

@Configuration 
public class DefaultView extends WebMvcConfigurerAdapter{ 

    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addViewController("/").setViewName("forward:/yourpage.html"); 
     registry.setOrder(Ordered.HIGHEST_PRECEDENCE); 
     super.addViewControllers(registry); 
    } 
} 
+0

यह मेरे लिए काम किया – AutoMEta

+1

@Downvoter ... टिप्पणी करने की देखभाल? –

7

Michael's tutorial के बाद, मैं बस अपना index.gsp फ़ाइल को मैप करने के / कर रहा था है ।

@Controller 
class Routes { 

    @RequestMapping([ 
     "/", 
     "/bikes", 
     "/milages", 
     "/gallery", 
     "/tracks", 
     "/tracks/{id:\\w+}", 
     "/location", 
     "/about" 
    ]) 
    public String index() { 
     return "forward:/index.gsp"; 
    } 
} 
0

मैं इसे निम्नानुसार कर रहा हूं।

package org.gwtproject.tutorial.configuration; 

import org.springframework.context.annotation.Configuration; 
import org.springframework.core.Ordered; 
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 

/** 
* Configure the welcome page 
* 
*/ 
@Configuration 
public class SpringBootWelcomePageConfiguration extends WebMvcConfigurerAdapter implements WebMvcConfigurer { 

    /** 
    * redirect a user to the welcome page when he visits tha app without a 
    * destination url. 
    */ 
    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addViewController("/").setViewName("forward:/ForExampleAGwtEntrypoint.html"); 
     registry.setOrder(Ordered.HIGHEST_PRECEDENCE); 
     super.addViewControllers(registry); 
    } 
} 
संबंधित मुद्दे