꾸준한 개발일기

리눅스:: this web application instance has been stopped already 오류 해결하기 본문

Programing/리눅스

리눅스:: this web application instance has been stopped already 오류 해결하기

꾸개일 2022. 2. 8. 09:00
반응형

구현한 기능을 돌리는 중 this web application instance has been stopped already 에러가 발생하였다. 

06-Feb-2022 07:12:13.427 INFO [DefaultQuartzScheduler_Worker-1] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [META-INF/services/javax.xml.parsers.DocumentBuilderFactory]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
	java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [META-INF/services/javax.xml.parsers.DocumentBuilderFactory]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
		at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1378)
		at org.apache.catalina.loader.WebappClassLoaderBase.findResources(WebappClassLoaderBase.java:977)
		at org.apache.catalina.loader.WebappClassLoaderBase.getResources(WebappClassLoaderBase.java:1078)
		at java.util.ServiceLoader$LazyIterator.hasNextService(ServiceLoader.java:348)
		at java.util.ServiceLoader$LazyIterator.hasNext(ServiceLoader.java:393)
		at java.util.ServiceLoader$1.hasNext(ServiceLoader.java:474)
		at javax.xml.parsers.FactoryFinder$1.run(FactoryFinder.java:293)
		at java.security.AccessController.doPrivileged(Native Method)
		at javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:289)
		at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:267)
		at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:120)
		at egovframework.lxap.bat.domain.trade.ApiSoapToCsvToPostProcessor.readXml(ApiSoapToCsvToPostProcessor.java:184)
		at egovframework.lxap.bat.domain.trade.ApiSoapToCsvToPostProcessor.getResponse(ApiSoapToCsvToPostProcessor.java:315)
		at egovframework.lxap.bat.domain.trade.ApiSoapToCsvToPostProcessor.getApiPbprtToCsv(ApiSoapToCsvToPostProcessor.java:372)
		at egovframework.lxap.bat.domain.trade.ApiSoapToCsvToPostProcessor.process(ApiSoapToCsvToPostProcessor.java:129)
		at egovframework.lxap.bat.domain.trade.ApiSoapToCsvToPostProcessor.process(ApiSoapToCsvToPostProcessor.java:1)
		at org.springframework.batch.core.step.item.SimpleChunkProcessor.doProcess(SimpleChunkProcessor.java:126)
		at org.springframework.batch.core.step.item.SimpleChunkProcessor.transform(SimpleChunkProcessor.java:293)
		at org.springframework.batch.core.step.item.SimpleChunkProcessor.process(SimpleChunkProcessor.java:192)
		at org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:75)
		at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:406)
		at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:330)
		at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
		at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:271)
		at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:81)
		at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:374)
		at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215)
		at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:144)
		at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:257)
		at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:200)
		at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:148)
		at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:64)
		at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:67)
		at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169)
		at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144)
		at org.springframework.batch.core.job.flow.FlowJob.doExecute(FlowJob.java:134)
		at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:306)
		at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:135)
		at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50)
		at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:128)
		at org.springframework.batch.core.launch.support.SimpleJobOperator.start(SimpleJobOperator.java:314)
		at egovframework.rte.bat.core.launch.support.EgovBatchRunner.start(EgovBatchRunner.java:125)
		at egovframework.lxap.bat.service.BatchShellScriptJob.executeProgram2(BatchShellScriptJob.java:179)
		at egovframework.lxap.bat.service.BatchShellScriptJob.execute(BatchShellScriptJob.java:122)
		at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
		at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)

 

검색을 해보니 로컬에서 구현한 class파일을 운영서버에 적용한 뒤 톰캣을 재기동하지 않아서였다.

 

./shutdown.sh

ssh에서 tomcat 폴더 안에 bin 폴더로 이동한 후 ./shutdown.sh나 kill [PID]로 서버를 죽여준다.

 

./startup.sh

./startup.sh 명령어를 입력하여 재기동해주면 이러한 오류가 발생하지 않는다.

반응형
Comments