2011-06-22 13 views
11

मेरे पास एक ऐसा एप्लिकेशन है जो स्प्रिंग बैच और स्प्रिंग एमवीसी का उपयोग करता है। मैं स्प्रिंग बैच एडमिनिस्ट्रेशन को एक अलग युद्ध के रूप में तैनात करने में सक्षम हूं और उसी एप्लिकेशन के उपयोग के लिए इसका उपयोग करता हूं, हालांकि मैं इसे अपने आवेदन में एकीकृत करना चाहता हूं, संभवतः कुछ विचारों को भी संशोधित करना चाहता हूं।स्प्रिंग बैच व्यवस्थापक को मौजूदा अनुप्रयोग में एकीकृत करना

क्या ऐसा करने का कोई आसान तरीका है या क्या मुझे इसे फोर्क करना है और वहां से जाना है?

उत्तर

14

इस thread के अनुसार स्पष्ट रूप से एक आसान तरीका है;

  • web.xml में बैच व्यवस्थापक के लिए एक DispatcherServlet परिभाषित करें:

    <servlet> 
        <servlet-name>Batch Servlet</servlet-name> 
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
        <init-param> 
         <param-name>contextConfigLocation</param-name> 
         <param-value>classpath*:/org/springframework/batch/admin/web/resources/servlet-config.xml</param-value> 
        </init-param> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    
    <servlet-mapping> 
        <servlet-name>Batch Servlet</servlet-name> 
        <url-pattern>/batch/*</url-pattern> 
    </servlet-mapping> 
    
  • जड़ appContext में resourceService के लिए एक ओवरराइड करें:

    <bean id="resourceService" 
    class="org.springframework.batch.admin.web.resources.DefaultResourceService"> 
        <property name="servletPath" value="/batch" /> 
    </bean> 
    
  • वसंत बैच-व्यवस्थापक में संशोधित standard.ftl - स्रोतों-1.2.0-RELEASE.jar यूआरएल को प्रतिबिंबित करने के लिए:

    <#assign url><@spring.url relativeUrl="${servletPath}/resources/styles/main.css"/></#assign>

+0

+1 (वेब ​​से संबंधित कॉन्फ़िगरेशन और संसाधनों के लिए/src/मुख्य/संसाधन/वेब-INF फ़ोल्डर की जाँच) आपका उत्तर यहां लिंक किया गया था: http://forum.springsource.org/showthread.php?116685-Spring-Batch-Admin-App-fails-to-create-configuration-bean – opyate

+0

क्या आप अपने pom.xml का विवरण पोस्ट कर सकते हैं जहां आप वसंत-बैच-व्यवस्थापक जार फ़ाइलों पर निर्भरताओं की घोषणा करें? – emeraldjava

7

आप Spring-batch-admin 1.2.1 का उपयोग कर रहे हैं, तो आप standard.ftl फ़ाइल को संशोधित करने के लिए नहीं है। और आपको से servlet-config.xml और webapp-config.xml फ़ाइलों को जोड़ना चाहिए। ये कदम उठाएँ (बार-बार फिर से) कर रहे हैं:

<servlet> 
     <servlet-name>Batch Servlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>classpath*:/org/springframework/batch/admin/web/resources/servlet-config.xml,classpath*:/org/springframework/batch/admin/web/resources/webapp-config.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

अपने applicationContext में resourceService सेम जोड़ें:

<bean id="resourceService" 
class="org.springframework.batch.admin.web.resources.DefaultResourceService"> 
    <property name="servletPath" value="/batch" /> 
</bean> 
+0

इस प्रश्न के उत्तर के अनुसार, 'संसाधन सेवा 'परिभाषा को' मेटा-आईएनएफ \ वसंत \ बैच \ ओवरराइड 'में जाना चाहिए। http://stackoverflow.com/questions/23880396/batch-admin-console-dispatcherservlet-using-internalresourceviewresolver-inste – Stewart

3

के बजाय इस तरह वसंत बैच व्यवस्थापक एक्सएमएल फाइल को संदर्भित:

<param-value>classpath*:/org/springframework/batch/admin/web/resources/servlet-config.xml</param-value> 
आप

आपकी खुद की एक्सएमएल फ़ाइल

का भी संदर्भ दे सकता है

इस तरह युक्त somethink:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 

<import resource="classpath*:/META-INF/spring/batch/servlet/resources/*.xml" /> 
<import resource="classpath*:/META-INF/spring/batch/servlet/manager/*.xml" /> 
<import resource="classpath*:/META-INF/spring/batch/servlet/override/*.xml" /> 
<import resource="classpath*:/META-INF/spring/batch/bootstrap/**/*.xml" /> 
<import resource="classpath*:/META-INF/spring/batch/override/**/*.xml" /> 

<!-- Override de standard locatie van spring batch admin resources --> 
<bean id="resourceService" class="org.springframework.batch.admin.web.resources.DefaultResourceService"> 
    <property name="servletPath" value="/batch" /> 
</bean> 

<bean id="parameterUnpackerFilter" class="org.springframework.batch.admin.web.filter.ParameterUnpackerFilter"> 
    <property name="prefix" value="unpack_"/> 
    <property name="putEmptyParamsInPath" value="true"/> 
</bean> 

</beans> 
4

मैं अपने अनुप्रयोग है कि एक जार फ़ाइल के रूप में पैक किया जाता है में वसंत बैच व्यवस्थापक एम्बेडेड है। मैंने ऐसा इसलिए किया क्योंकि यह ऐप पहले से मौजूद था और मैं इसे जे 2 एसई का उपयोग करके चलाता हूं, न कि टोमकैट जैसे सर्वलेट कंटेनर में। इसके अलावा मुझे बैच नौकरियों के लिए वेब-सर्वर/सर्वलेट कंटेनर को तैनात करने का विचार पसंद नहीं आया। स्प्रिंग बैच व्यवस्थापक एप्लिकेशन एक अच्छा संदर्भ कार्यान्वयन है और लगभग सभी इंटरफेस को स्प्रिंग डी के माध्यम से कस्टम कक्षाओं का उपयोग करके प्रतिस्थापित किया जा सकता है। इसके अलावा सभी यूआई टेम्पलेट संचालित था। इसलिए मैंने प्रासंगिक संसाधन निकाले और एक एम्बेडेड जेटी सर्वर का उपयोग करके कंसोल चलाया जो मेरा एप्लिकेशन लॉन्च करता है। असल में, ऐप के अंदर सर्वलेट कंटेनर में सर्वलेट कंटेनर के अंदर ऐप से रोक लगा दी गई है।

स्क्रीन शॉट यहां हैं: https://github.com/regunathb/Trooper/wiki/Trooper-Batch-Web-Console

स्रोत, config संसाधनों आदि यहां हैं: https://github.com/regunathb/Trooper/tree/master/batch-core

संबंधित मुद्दे