2011-11-22 20 views
5

मैं पर्यावरण के आधार पर विभिन्न वर्चुअल-होस्ट नामों का उपयोग करने के लिए अपनी परियोजना को सेट करने का प्रयास कर रहा हूं।क्या jboss-web.xml गुणों तक पहुंच सकते हैं?

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

jboss-web.xml:

<jboss-web> 
    <context-root>/</context-root> 
    <virtual-host>${jbossweb.virtualhost}</virtual-host> 
</jboss-web> 

पर्यावरण विशिष्ट गुण फ़ाइल में प्रविष्टि होगी:

jbossweb.virtualhost=hostname.domain.com 

पोम फ़ाइल निर्माण खंड इस परिभाषा है

<filters> 
     <filter>src/main/filters/filter-${env}.properties</filter> 
    </filters> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
     <resource> 
      <directory>src/main/webapp/WEB-INF</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 

बस अच्छे उपाय के लिए, प्रोफाइल अनुभाग में यह कॉन्फ़िगरेशन है:

<profile> 
    <id>dev</id> 
    <properties> 
     <env>dev</env> 
    </properties> 
    </profile> 

मुझे यह भी सुनिश्चित नहीं है कि मैं जो करने की कोशिश कर रहा हूं वह संभव है। जब मैं इसे आज़माता हूं, तो Jboss-web.xml में वर्चुअल-होस्ट स्थान में चर नाम होता है, न कि मान।

क्या मैं गलत पेड़ को भड़क रहा हूं?

धन्यवाद,

एरिक

+0

यह _looks_ जैसे आपके पास सभी टुकड़े हैं। प्रोफाइल परिभाषा में 'jbossweb.virtualhost' के मान को शामिल करना एक और _slightly भिन्न_ दृष्टिकोण है। –

उत्तर

10

वास्तव में, मैं यह करने के लिए एक तरीका ढूंढ निकाला है:

jboss-web.xml इस तरह अब लग रहा है:

<jboss-web> 
    <context-root>${jbossweb.contextroot}</context-root> 
    <virtual-host>${jbossweb.virtualhost}</virtual-host> 
</jboss-web> 

संपत्ति फ़ाइल इस तरह दिखती है:

jbossweb.virtualhost=hostname 
jbossweb.contextroot=/ 

फिर पोम अनुभाग Maven युद्ध प्लगइन विन्यास के लिए इस तरह दिखता है:

   <webResources> 
        <resource> 
         <directory>src/main/webapp/WEB-INF</directory> 
         <filtering>true</filtering> 
         <include>jboss-web.xml</include> 
         <targetPath>/WEB-INF</targetPath> 
        </resource> 
       </webResources> 

और फिल्टर प्लग इन की अनुभाग के ऊपर परिभाषित कर रहे हैं, लेकिन निर्माण अनुभाग के भीतर इस प्रकार है:

<filters> 
     <filter>src/main/filters/filter-${env}.properties</filter> 
    </filters> 
+2

वेब स्रोत स्रोत jboss-web.xml पर मैवेन गुणों के साथ फ़िल्टरिंग को सक्षम करने के लिए पर्याप्त है। – Donatello

+0

मुझे पता है कि इसका उत्तर दो साल पहले दिया गया था, इसलिए संस्करण अलग-अलग हो सकते हैं; लेकिन मैं jboss-web.xml से संदर्भ-रूट तत्व को हटाकर स्प्रिंग बूट प्रोजेक्ट में काम करने में सक्षम था और बिल्ड ने application.properties फ़ाइल से server.context-path को उठाया। –