2014-07-17 9 views
5

में तैनात किए जाने पर काम नहीं कर रहा है मैंने this tutorial का पालन किया है। अब अगर मैं स्प्रिंग बूट के माध्यम से इसका उपयोग करता हूं तो यह काम करता है, लेकिन अगर मैं अपाचे टॉमकैट 7 पर इसे तैनात करने (एप्लिकेशन क्लास को हटाने) की कोशिश करता हूं तो मुझे 404 प्रतिक्रियाएं मिलती हैं। मैंने अपनी खुद की कॉन्फ़िगरेशन बनाने की भी कोशिश की है - इस तरह कुछ:स्प्रिंग बूट ऐप स्टैंडअलोन टॉमकैट

@Configuration 
public class MongoConfiguration { 

    public @Bean MongoDbFactory mongoDbFactory() throws Exception { 
     return new SimpleMongoDbFactory(new Mongo("127.0.0.1", 27017), "movies"); 
    } 

    public @Bean MongoTemplate mongoTemplate() throws Exception { 
     return new MongoTemplate(mongoDbFactory()); 
    } 
} 

यह अभी भी काम नहीं करता है। तो 2 प्रश्न। डिफ़ॉल्ट यह द्वारा:

  1. कैसे बिल्ला पर इस चलाने के लिए टिप्पणी द्वारा मोंगो कॉन्फ़िगर कैसे (बस अपना डेटाबेस पाने के लिए)

नोट (कितना आसान बाकी बनाने के लिए और बिल्ला पर चलाने के लिए)

  • वसंत बूट चलाने वाले टेस्ट वाइल का उपयोग करता है और मैं इसे सरल नियंत्रकों (@RepositoryRestResource के बजाय) के माध्यम से काम कर सकता हूं लेकिन मैं http://localhost:8080 को कर्ल करने और विकल्पों के साथ प्रतिक्रिया प्राप्त करने में सक्षम होना चाहता हूं।

  • उत्तर

    19

    क्या आपने सुनिश्चित किया है कि आपने बूट संदर्भ दस्तावेज के section on traditional deployments का पालन किया है? आप जो वर्णन करते हैं, उससे यह वसंत डेटा आरईएसटी या मोंगोडीबी काम नहीं कर रहा है लेकिन तैनाती वास्तव में बिल्कुल काम नहीं कर रही है।

    @Configuration 
    @EnableAutoConfiguration 
    @ComponentScan 
    public class Application extends SpringBootServletInitializer { 
    
        @Override 
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
        return application.sources(Application.class); 
        } 
    } 
    

    SpringBootServletInitializer है:

    चाल ताकि सर्वलेट कंटेनर bootstrap करने के लिए विन्यास (नमूना संदर्भ डॉक्स से लिया गया) प्राप्त कर सकते हैं मुख्य विन्यास वर्ग आप एक विशेष इंटरफ़ेस को लागू करने के लिए है यह बताने के लिए किया जाना चाहिए यहां महत्वपूर्ण पहलू है क्योंकि यह पारंपरिक वेब ऐप्स के लिए सर्वलेट 3 बूटस्ट्रैप तंत्र में हुक करता है। संदर्भ दस्तावेज़ों में Servlet 3.0 से पहले Servlet कंटेनर में बूट ऐप काम करने के तरीके के बारे में instructions भी है।

    यह भी ध्यान रखें, कि जब कोई ऐप एक स्टैंडअलोन कंटेनर में तैनात किया जाता है, यह आमतौर पर नहीं उपलब्ध जड़ (अर्थात http://localhost:8080/), लेकिन एक समर्पित संदर्भ युद्ध फ़ाइल तैनात (जैसे http://localhost:8080/my-app) के नाम पर के माध्यम से है।

    +0

    स्प्रिंगबूटस्वार्टरइनेनाइज़र का विस्तार गायब था। मैं इस एप्लिकेशन क्लास को हटाने और वेब.एक्सएमएल में सामान डालने की कोशिश कर रहा था, लेकिन मैं इसे इस तरह से काम करना चाहता था क्योंकि इसे पढ़ने में बहुत आसान है। आपका बहुत बहुत धन्यवाद। लोकहोस्ट पर तैनाती के बारे में - मैं "@RequestMapping" का उपयोग "/" पर कर रहा था और इसने मुझे स्थानीय/पोस्ट पर स्थानीयहोस्ट पर प्रतिक्रिया दी लेकिन यह तब हुआ जब मैंने web.xml और "@ नियंत्रक" + का उपयोग किया, मैं बसंत के माध्यम से इसे तैनात कर रहा था टूल सूट (जब मैं मैन्युअल रूप से टॉमकैट चलाता हूं तो मुझे आवश्यक/myapp) फिर उत्तर के लिए बहुत बहुत धन्यवाद। – unknown

    1

    मैंने जावा संस्करण के कारण इस समस्या के एक अलग संस्करण में भाग लिया है। सभी विन्यास पोम में सही थे।

    <properties> 
        ...  
        <tomcat.version>8.0.39</tomcat.version> 
        <java.version>1.8</java.version> 
        ... 
    </properties> 
    

    बाहर कर देता है सर्वर OpenJDK संस्करण 7. चल रहा था वहाँ स्टार्टअप पर बिल्ला लॉग में कोई त्रुटि नहीं थे, लेकिन यह भी वसंत आवेदन से कोई उत्पादन।

    सर्वर को ओरेकल जेडीके संस्करण 8 में अपग्रेड करने के बाद, सब कुछ ठीक हो गया।

    +0

    जानना उपयोगी है। धन्यवाद हालांकि मुझे देर हो चुकी है, मैंने अधिसूचनाओं में इसे पहले नहीं देखा था। – unknown

    0

    मैं एक और हालिया टॉमकैट (7.0.82) के साथ एक ही मुद्दे में भाग गया।

    import org.springframework.boot.builder.SpringApplicationBuilder; 
    import org.springframework.boot.web.support.SpringBootServletInitializer; 
    
    public class ServletInitializer extends SpringBootServletInitializer { 
    
        @Override 
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
         return application.sources(MyApp.class); 
        } 
    } 
    

    बजाय MyApp.java विस्तार:

    ... 
    @SpringBootApplication 
    public class MyApp extends SpringBootServletInitializer { 
        ... 
    } 
    

    एक पूर्ण के लिए https://www.youtube.com/watch?v=92ceKwUZoA0 देखें बाद यहाँ वर्णित अन्य समाधान मेरे लिए ऐसा नहीं हो पाया मैं किसी अन्य वर्ग ServletInitializer.java को लागू करने से इस मुद्दे को हल करने में सक्षम था ट्यूटोरियल।