API를 구현하기 위해 Apache CXF 및 JAX/RS를 사용하는 Java 웹 응용 프로그램이 있습니다. 우리는 tomcat 아래에서 webapp을 실행하고 있습니다. 내 응용 프로그램에서 내 응용 프로그램을 다시 호출 할 수있는 외부 서비스를 호출하는 무언가를 구현해야합니다. CXF 초기화가 끝나고 외부 API 요청을 받아 들일 준비가 된 후에 만 외부 서비스를 호출해야합니다. 서블릿 컨텍스트 리스너, CXFServlet, 응용 프로그램 컨텍스트 새로 고침 및 다른 것들을 체크 아웃했지만 CXF가 요청을 받아들이 기 시작하는 프로세스에서 충분히 늦게 호출 된 것을 볼 수 없습니다. 아니면 바람둥이에서 어떤 사건을 유발해야합니까?Spring/CXF가 요청할 준비가 된시기를 아는 방법?
0
A
답변
0
스프링 구성에서 CXF 종속성을 bean으로 정의하면 응용 프로그램 시작시로드되고 준비가됩니다. 응용 프로그램을 시작하는 동안 스프링 빈이로드되고 해결되는 것을 알고 있으므로 사전 초기화 기능과 사후 초기화 기능을 추가로 가질 수 있습니다. @PostConstruct. 참조 https://www.luckyryan.com/2013/06/15/apache-cxf-exception-handler-for-jaxrs-rest/에서
예 구성 :
<!-- rest container -->
<jaxrs:server id="sampleSerivceREST" address="/rest">
<jaxrs:serviceBeans>
<ref bean="sampleServiceRESTGateway"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
<bean class="com.luckyryan.sample.service.ExceptionHandler"/>
</jaxrs:providers>
</jaxrs:server>
<!-- soap container -->
<jaxws:endpoint
id="sampleServiceSOAP"
implementor="#sampleServiceSOAPGateway"
address="/soap"
serviceName="sampleSoapService"/>
관련 문제
- 1. 키보드가 최소화 된시기를 아는 방법?
- 2. 지도 컨트롤이 처음 조작 된시기를 아는 방법?
- 3. cron 작업이 마지막으로 실행 된시기를 아는 방법?
- 4. jQuery의 .load() 후에 html 조각의 이미지가로드 된시기를 아는 방법?
- 5. Android - 수퍼 유저가 내 애플리케이션에 부여 된시기를 아는 방법?
- 6. 지시어의 마지막 요소가 AngularJS로 링크 된시기를 아는 방법?
- 7. 클래스가 HTML 요소에 변경/추가 된시기를 아는 방법?
- 8. 붙여 넣기 이벤트가 UITextView에서 트리거 된시기를 아는 방법은 무엇입니까?
- 9. Image src가로드 된시기를 찾는 방법
- 10. 내 활동이 완전히 작성된시기를 아는 방법?
- 11. Flickr API, jquery를 사용하는 JSON 요청 Infinitescroll, 마지막 페이지가로드 된시기를 아는 방법?
- 12. D3 강제 레이아웃이 중지 된시기를 알려주는 방법
- 13. 여러 콜백이 모두 수행 된시기를 확인하는 방법
- 14. php에서 링크가 클릭 된시기를 알아 보는 방법
- 15. IntentService가 일시 중지 된시기를 알아 보는 방법
- 16. 이미지가 ImageSurface에 완전히로드 된시기를 알 수있는 방법
- 17. 앨범이 MediaStore에 추가 된시기를 알 수있는 방법
- 18. 요소가 아래로 스크롤 된시기를 알아 보는 방법
- 19. 종속성 속성에서 바인딩이 업데이트 된시기를 확인하는 방법
- 20. 예외가 throw 된시기를 알아 보는 방법
- 21. ToolWindow가 활성화 된시기를 알아 보는 방법
- 22. 음원 생성기 재생이 중단 된시기를 알려주는 방법
- 23. 예외가 PHP의 소멸자에서 throw 된시기를 알아내는 방법
- 24. IFrame의 콘텐츠가로드 된시기를 결정합니다.
- 25. JToolbar의 현황을 아는 방법?
- 26. 언어가 무엇인지 아는 방법?
- 27. 버튼 이름을 아는 방법?
- 28. 서버가 요청을받은시기를 아는 방법?
- 29. 선택한 슬라이더를 아는 방법
- 30. 이전 페이지를 아는 방법?
글쎄, 바로, 그 있습니다. 문제는 ApplicationContext가 초기화 사이클의 초기에 모든 Spring Bean을 인스턴스화한다는 것이다. 불행하게도 CXF는 요청을 나중에 받아 들일 수 있습니다. 나는 무언가가 도청 될 수 있다고 확신합니다, 나는 그것이 무엇인지 확실하지 않습니다. – fool4jesus
CXF servlet에 대해 1 load-on-startup>을 정의합니까? –
amitmah
글쎄, 3 load-on-startup>이지만 네. CXF가 요청에 응답하고있는 시점에 도달하는 데 너무 오래 걸리는 이유는 확실하지 않지만 실제로 그렇습니다. 그래서 나는 비밀 콜백이나 내가 놓친 사건이 있었으면 좋겠다. –
fool4jesus