2014-05-12 9 views
5

बंद हो जाता है, इसलिए मुझे यह कारण नहीं मिल रहा है कि मेरा destroy-method क्यों नहीं जा रहा है जब मेरा एप्लिकेशन टॉमकैट स्टॉप के मामले में बंद हो जाता है।वसंत बीन की नष्ट-विधि को कॉल नहीं किया जा रहा है जब मेरा टॉमकैट

web.xml

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath:appContext.xml</param-value> 
</context-param> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
नीचे

अपने आवेदन में एक कर्मचारी सेम है:

मैं एक वेब अनुप्रयोग और वसंत संदर्भ नीचे की तरह web.xml में ContextLoaderListener के माध्यम से लोड हो रहा है है:

Employee.class

public class Employee { 
    String eName; 
    long eSal; 
    public String getEName() { 
     return eName; 
    } 
    public void setEName(String name) { 
     eName = name; 
    } 
    public long getESal() { 
     return eSal; 
    } 
    public void setESal(long sal) { 
     eSal = sal; 
    } 

    public void init() { 
     System.out.println("Initiaizing..."); 
     System.out.println("eName: " + eName + " - eSal: " + eSal); 
    } 

    public void close() { 
     System.out.println("Destroying..."); 
    } 
} 

और सेम नीचे की तरह अपने आवेदन संदर्भ फ़ाइल में परिभाषित किया गया है:

appContext.xml

<beans:beans xmlns="http://www.springframework.org/schema/integration" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.1.xsd"> 

    <beans:bean id="employee" class="com.test.Employee" init-method="init" destroy-method="close"> 
     <beans:property name="eName" value="sandip" /> 
     <beans:property name="eSal" value="80000" /> 
    </beans:bean>   
</beans:beans> 

बिलाव कंसोल लॉग:

May 12, 2014 11:28:46 AM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre6\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Java\jre7\bin\client;C:\Program Files\Java\jre7\bin;C:\Program Files\Common Files\NetSarang;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Lenovo\Access Connections\;D:\Project\maven-2.0.7\bin;D:\Software Backup\apache-ant-1.7.0\bin;C:\Program Files\Java\jdk1.6.0_20\bin;D:\Project\OBD3\1.5;D:\Software Backup\CVS;D:\Project\UNIX\UnxUtils\usr\local\wbin;C:\Program Files\QuickTime\QTSystem\;D:\Personal\MongoDB\MongoDB_work\mongodb\bin;D:\Software Installed\MariaDB 5.5\bin;C:\Program Files\Git\bin 
May 12, 2014 11:28:46 AM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:testSpringBeanDestroy' did not find a matching property. 
May 12, 2014 11:28:46 AM org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8093 
May 12, 2014 11:28:46 AM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 419 ms 
May 12, 2014 11:28:46 AM org.apache.catalina.core.StandardService start 
INFO: Starting service Catalina 
May 12, 2014 11:28:46 AM org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.32 
May 12, 2014 11:28:46 AM org.apache.catalina.loader.WebappClassLoader validateJarFile 
INFO: validateJarFile(D:\Project\Workspace_new\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\testSpringBeanDestroy\WEB-INF\lib\servlet.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 
May 12, 2014 11:28:46 AM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring root WebApplicationContext 
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). 
log4j:WARN Please initialize the log4j system properly. 
Initiaizing... 
eName: sandip - eSal: 80000 
May 12, 2014 11:28:47 AM org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8093 
May 12, 2014 11:28:47 AM org.apache.jk.common.ChannelSocket init 
INFO: JK: ajp13 listening on /0.0.0.0:8011 
May 12, 2014 11:28:47 AM org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/20 config=null 
May 12, 2014 11:28:47 AM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 768 ms 

जब मैं अपने बिल्ला मैं शुरू देख सकते हैं कि मेरी init विधि को बुलाया जा रहा है लेकिन दुर्भाग्यवश जब मैं टॉमकैट को बंद करता हूं() यानी नष्ट विधि को बुलाया नहीं जा रहा है।

मैं वसंत 3.1.2 वितरण जार का उपयोग कर रहा हूं।

मैं क्या गलत कर रहा हूं?

+0

आप टोमकैट को कैसे रोकते हैं? –

+0

बस प्रक्रिया को मार दें या shutdown.sh – Sandy

+2

का उपयोग करके और आप दोनों हत्या और shutdown.sh के साथ एक ही व्यवहार प्राप्त करते हैं? मैंने सोचा होगा कि केवल मारने की उम्मीद के रूप में काम नहीं करेगा। –

उत्तर

0

धन्यवाद आंद्रेई। आपके लिए +1 समस्या यह थी कि मैं ठीक से बंद नहीं कर रहा था। अब कुछ दस्तावेज़ पढ़ने के बाद मुझे पता चला कि अगर मैं टॉमकैट प्रबंधक से या तो शॉकडाउन स्क्रिप्ट्स (shutdwon.sh/shutdown.bat) का उपयोग करके मेरी टोमकैट को बंद कर देता हूं, तो मेरी नष्ट विधि को बुलाया जा रहा है।

किल -9 कमांड काम नहीं करेगा और अगर ग्रहण से रुकने का प्रयास भी कर रहा है, तो यह काम नहीं कर रहा है।

+0

मैं एक समान स्थिति में हूं। मैं चाहता हूं कि मेरी सर्वलेट की 'नष्ट()' विधि को ट्रिगर किया जाए, और पूरा होने में सक्षम हो, जब टॉमकैट 7 सेवा बंद हो जाती है ('सेवा tomcat7 stop') लेकिन मैं यह नहीं बता सकता कि यह सही दृष्टिकोण है या नहीं। शटडाउन स्क्रिप्ट कहां मिल सकती है? ('Shutdown.sh/shutdown.bat')? 'सेवा tomcat7 स्टॉप' समकक्ष होना चाहिए या वह 'नष्ट नहीं करेगा') ' – mmcrae

+0

आपका ध्यान विशेष रूप से @ सैंडी आकर्षित करना चाहता था – mmcrae

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