दिलचस्प पोस्ट
mysql एक श्रृंखलाबद्ध सरणी के भीतर क्वेरी का चयन करें file_get_contents (): php_network_getaddresses: getaddrinfo विफल: नाम या सेवा ज्ञात नहीं है डी 3 फोर्स निर्देशित ग्राफ़: झंडे क्यों नहीं दिखते? HTML5 "डाउनलोड" विशेषता के लिए समर्थन का पता कैसे लगाया जाता है? समझ में एक असाइनमेंट के साथ एक लूप को परिवर्तित करना टीएलएस के साथ अनुरोधों का उपयोग एसएनआई समर्थन नहीं देता है स्प्रिंग एमवीसी में स्थिर सामग्री को कैसे संभालना है? परिमित ऑटोमेटा के लिए नियमित अभिव्यक्ति की आवश्यकता: यहां तक ​​कि 1 एस की संख्या और 0 की संख्या भी एक शब्दकोश <स्ट्रिंग> स्ट्रिंग> को एक्सएमएल और वीजा के रूप में परिवर्तित करने का आसान तरीका चार * और चार के बीच का अंतर सी में मेरी सरणी के आकार को मैं कैसे निर्धारित करूं? ASP.NET वेब फ़ॉर्म के साथ निर्भरता इंजेक्शन का उपयोग कैसे करें चल रहे प्रक्रियाओं को सूचीबद्ध करने के लिए लिनक्स एपीआई? क्रोम अनचाहे सिंटेक्स त्रुटि: अनपेक्षित टोकन अवैध फ़ायरफ़ॉक्स और क्रोम में इनपुट ऊंचाई अंतर

स्प्रिंग बूट अनुप्रयोग के लिए संदर्भ पथ जोड़ें

मैं एक स्प्रिंग बूट अनुप्रयोग कॉन्फ़िगरेशन रूट को प्रोग्रामेटिक रूप से सेट करने का प्रयास कर रहा हूं। संदर्भ रूट का कारण हम चाहते हैं कि ऐप को localhost:port/{app_name} से एक्सेस किया localhost:port/{app_name} और उसके पास सभी नियंत्रक पथ शामिल हों।

यहां वेब-ऐप के लिए एप्लिकेशन कॉन्फ़िगरेशन फ़ाइल है

 @Configuration public class ApplicationConfiguration { Logger logger = LoggerFactory.getLogger(ApplicationConfiguration.class); @Value("${mainstay.web.port:12378}") private String port; @Value("${mainstay.web.context:/mainstay}") private String context; private Set<ErrorPage> pageHandlers; @PostConstruct private void init(){ pageHandlers = new HashSet<ErrorPage>(); pageHandlers.add(new ErrorPage(HttpStatus.NOT_FOUND,"/notfound.html")); pageHandlers.add(new ErrorPage(HttpStatus.FORBIDDEN,"/forbidden.html")); } @Bean public EmbeddedServletContainerFactory servletContainer(){ TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); logger.info("Setting custom configuration for Mainstay:"); logger.info("Setting port to {}",port); logger.info("Setting context to {}",context); factory.setPort(Integer.valueOf(port)); factory.setContextPath(context); factory.setErrorPages(pageHandlers); return factory; } public String getPort() { return port; } public void setPort(String port) { this.port = port; } } 

यहां मुख्य पृष्ठ के लिए सूचकांक नियंत्रक है।

 @Controller public class IndexController { Logger logger = LoggerFactory.getLogger(IndexController.class); @RequestMapping("/") public String index(Model model){ logger.info("Setting index page title to Mainstay - Web"); model.addAttribute("title","Mainstay - Web"); return "index"; } } 

आवेदन का नया रूट localhost:12378/mainstay पर होना चाहिए localhost:12378/mainstay , लेकिन यह अभी भी localhost:12378 पर स्थित है localhost:12378

मुझे क्या याद आ रही है जो स्प्रिंग बूट को अनुरोध मैपिंग से पहले संदर्भ रूट जोड़ना नहीं है?

Solutions Collecting From Web of "स्प्रिंग बूट अनुप्रयोग के लिए संदर्भ पथ जोड़ें"

आप अपना स्वयं का समाधान क्यों रोल करने का प्रयास कर रहे हैं? वसंत-बूट पहले से ही इसका समर्थन करता है

यदि आपके पास पहले से कोई नहीं है, तो application.properties जोड़ें। src\main\resources फ़ाइल को src\main\resources उस गुण फाइल में, 2 गुण जोड़ें:

 server.contextPath=/mainstay server.port=12378 

अपडेट (स्प्रिंग बूट 2.0)

स्प्रिंग बूट 2.0 (स्प्रिंग एमवीसी और स्प्रिंग वेबफ्लक्स दोनों के समर्थन के कारण) के रूप में contextPath निम्न में बदल दिया गया है:

 server.servlet.contextPath=/mainstay 

फिर आप कस्टम सर्विसलेट कंटेनर के लिए अपना कॉन्फ़िगरेशन हटा सकते हैं यदि आपको कंटेनर पर कुछ पोस्ट प्रोसेसिंग करने की आवश्यकता है तो आप अपने कॉन्फ़िगरेशन (उदाहरण के लिए त्रुटि पेजों को जोड़ने के लिए) में एक EmbeddedServletContainerCustomizer कंटेनर EmbeddedServletContainerCustomizer कार्यान्वयन जोड़ सकते हैं।

असल में application.properties भीतर गुण एक डिफ़ॉल्ट के रूप में सेवा करते हैं, आप हमेशा किसी अन्य application.properties का उपयोग करके उन्हें ओवरराइड कर सकते हैं। प्रस्तुति देने वाले -Dserver.port=6666 बगल में या JVM पैरामीटर ( -Dserver.port=6666 ) जोड़कर।

संदर्भ गाइड विशेषकर गुण अनुभाग देखें।

क्लास ServerProperties लागू करता है contextPath लिए डिफ़ॉल्ट "" । आपके कोड के नमूने में आप contextPath पर सीधे contextPath सेट कर रहे हैं। इसके आगे ServerProperties उदाहरण इस उदाहरण पर संसाधित करेगा और इसे अपने पथ से "" रीसेट कर देगा। ( यह रेखा एक null जांच करता है लेकिन डिफ़ॉल्ट रूप से यह हमेशा विफल रहता है और प्रसंग को सेट करता है और इस प्रकार "" तुम्हारा ओवरराइड करता है)।

यदि आप स्प्रिंग बूट का उपयोग कर रहे हैं, तो आपको वीन आरंभीकरण के माध्यम से सर्वर प्रॉपर्टी कॉन्फ़िगर करने की आवश्यकता नहीं है।

इसके बजाय, यदि एक कार्यशीलता बुनियादी कॉन्फ़िगरेशन के लिए उपलब्ध है, तो इसे "गुण" नामक फाइल में सेट किया जा सकता है, जो कि आपके अनुप्रयोग संरचना में src\main\resources अंतर्गत रहना चाहिए। "प्रॉपर्टी" फ़ाइल दो प्रारूपों में उपलब्ध है

  1. .yml

  2. .properties

जिस तरह से आप निर्दिष्ट या कॉन्फ़िगरेशन सेट करते हैं वह एक प्रारूप से दूसरे तक अलग है।

आपके विशिष्ट मामले में, यदि आप एक्सटेंशन का उपयोग करने का निर्णय लेते हैं। .properties , तो आपके पास एक फाइल होगी जिसे application.properties src\main\resources तहत src\main\resources पर निम्न कॉन्फ़िगरेशन सेटिंग्स

 server.port = 8080 server.contextPath = /context-path 

.yml , यदि आप .yml एक्सटेंशन (अर्थात् application.yml ) का उपयोग करने का निर्णय लेते हैं, तो आपको निम्न स्वरूप (यानी YAML ) का उपयोग करके कॉन्फ़िगरेशन सेट करना होगा:

 server: port: 8080 contextPath: /context-path 

स्प्रिंग बूट के अधिक सामान्य गुणों के लिए नीचे दिए गए लिंक का संदर्भ लें:

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

यदि आप स्प्रिंग बूट 2.0.0 का प्रयोग करते हैं:

server.servlet.context-पथ

हम इसे application.properties में API_CONTEXT_ROOT=/therootpath रूप में सेट कर सकते हैं

और हम इसका उपयोग नीचे जावा क्लास में करते हैं

 @Value("${API_CONTEXT_ROOT}") private String contextRoot; 

सही गुण हैं

 server.servlet.path 

DispatcherServlet के पथ को कॉन्फ़िगर करने के लिए

तथा

 server.servlet.context-path 

नीचे दिए गए अनुप्रयोग संदर्भ के पथ को कॉन्फ़िगर करने के लिए

स्प्रिंग बूट में, संदर्भ पथ बदलने के लिए, server.contextpath गुणों को अपडेट करें। निम्न उदाहरण / से / मैकॉन्ग या http: // localhost: 8080 / माइकॉंग से संदर्भ पथ को अपडेट करते हैं

नोट डिफ़ॉल्ट रूप से, संदर्भ पथ "/" है।

1.1 एक गुण फ़ाइल के माध्यम से अद्यतन।

/src/main/resources/application.properties

server.port = 8080

server.contextPath = / mkyong

server.contextPath = / मुख्य आधार

मेरे लिए काम करता है अगर मुझे JBOSS में एक युद्ध फ़ाइल थी कई युद्ध फ़ाइलों में जहां प्रत्येक में jboss-web.xml था, वह काम नहीं कर रहा था। मुझे वेब-एनएफ़ निर्देशिका के अंदर जेबॉस-वेब। एक्सएमएल को सामग्री के साथ डालना पड़ा

 <?xml version="1.0" encoding="UTF-8"?> <jboss-web xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd"> <context-root>mainstay</context-root> </jboss-web> 

संदर्भ पथ को सीधे कोड से एकीकृत किया जा सकता है लेकिन यह उचित नहीं है क्योंकि इसका पुन: उपयोग नहीं किया जा सकता है ताकि एप्लिकेशन में लिखा जा सके। प्रॉपर्टीज़ फ़ाइल सर्वर। कॉन्टेक्सपाथ = / फ़ोल्डर का नाम जहां आपने कोड रखा था कोड / नोट: ध्यान से स्लेश देखें

स्प्रिंग बूट 1.5 में:

application.properties में निम्नलिखित संपत्ति जोड़ें। प्रॉपर्टीज़:

 server.context-path=/demo 

नोट: /demo आपके संदर्भ पथ URL है