2014-02-17 2 views
1

전체 응용 프로그램을 종료하지 않고 프런트 엔드에서 웹 서비스를 중지하고 시작할 수 있도록 응용 프로그램 관리자를위한 기능을 만들고 싶습니다.봄 - 웹 응용 프로그램에서 웹 서버를 중지하고 시작하는 방법은 무엇입니까?

응용 프로그램에는 항상 실행해야하는 다양한 다른 인터페이스, 화면 및 작업이 있습니다. 웹 서비스는 일부 데이터 유지 보수 작업을 위해 단독으로 종료해야하며 완료 후에 다시 작동해야합니다. 웹 서비스는 소수의 타사 응용 프로그램에서 사용됩니다.

응용 프로그램은 Spring 3.0.5로 작성되었습니다.

컨트롤러에서 웹 서비스 개체 (?)를 가져 와서 중지/시작을해야합니다.

봄-config.xml에

<wss:binding url="/wss/shipRequest.wss"> 
    <wss:service> 
     <ws:service bean="#shipRequestWS"> 
     </ws:service> 
    </wss:service> 
</wss:binding> 
<bean id="shipRequestWS" class="com.xxx.ShipRequestService"> 
    <property name="shipRequestBO" ref="shipRequestBO" /> 
</bean> 

"경량"유지 보수 변경의 경우, 당신은 단순히 서비스의 시작 부분에 국기에 체크를 할 수

@WebService 
@SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.LITERAL) 
public interface ShipRequestService extends java.rmi.Remote { 

      WebService methods... 
} 

답변

2

가장 간단한 솔루션 중 하나는 웹 서비스의 시작 및 중지를 제안하는 JMX controlled bean을 추가하는 것입니다. 이 bean은 두 가지 유형으로 제어를 구현할 수 있습니다.

  • 삽입 된 서비스에 플래그를 설정하십시오. 서비스는 비활성화 상태에서 예외를 throw 할 수 있지만이 특수 동작으로 확장해야합니다.
  • 웹 서비스는 활성화에 의해로드되거나 비활성화에 의해 중단되는 특수 하위 컨텍스트로 생성 될 수 있습니다. 컨텍스트는 현재 컨텍스트를 부모 컨텍스트로 사용하여 ClassPathXmlApplicationContext으로 만들 수 있습니다.
+0

감사합니다. Arne. ClassPathXmlApplicationContext를 통해 컨텍스트를 만들고 시작/중지 할 수 있습니다. –

0

서비스 메소드가 요청을 처리해야하는지 여부를 알 수있는 메소드.이 기술은 예를 들어 기능 뒤집기에 널리 사용됩니다.

관련 문제