2014-04-14 3 views
0

설명서에서 찾지 못했지만 뭔가 빠졌습니다. 구성 파일을 통해 웹 서비스를 게시하고 있습니다. 서비스가 정상적으로 작동 중입니다. 이제 일부 사용자 지정 인터셉터를 프로그래밍 방식으로 추가하려고합니다. enpoint 메소드가있는 메인 클래스의 클래스를 TestImpl이라고하고, 웹 서비스 메소드 인 testWS()를 호출한다고 가정 해 보겠습니다. 이 서비스에 대해 발신 및 발신 인터셉터를 추가하려면 어디에서해야합니까? 생성자에서? 내가 어떻게 그럴 수 있니? 어떤 공급자입니까? 서비스, ​​종점, 버스, 바인딩? 도와 줘서 고마워. 지금 나는 내 클래스의 생성자에서서버에서 프로그래밍 방식으로 인터셉터를 추가하십시오.

ServerFactoryBean serverFactoryBean = new ServerFactoryBean(); 

    Server server = serverFactoryBean.create(); 

    server.getEndpoint().getOutInterceptors().add(new CustomLoggingInInterceptor()); 
    server.getEndpoint().getOutInterceptors().add(new CustomLoggingOutInterceptor()); 

을하고 있어요하지만 난 Server server = serverFactoryBean.create();에서 NullPointerException이 발생하고 있습니다

답변

1
설정에

CXF 지원 버스, 바인딩 및 엔드 포인트에서 인터셉터 .

serverFactoryBean.create()를 호출하면 서버가 만들어져 업무용으로 열립니다. create 메소드를 호출하기 전에 serverFactoryBean에서 직접 인터셉터를 설정할 수 있습니다.

아직 ServerFactoryBean을 사용하고 있다면 설치 주소와 serviceClass()도 필요합니다.

+0

참조 사항이 있으시면 여기를 클릭하십시오. 제가 수행하고자하는 것은 서버 서비스에 프로그래밍 방식으로 커스텀 인터셉터를 집어 넣는 것입니다. 완전하고 간단한 예제는 발견하지 못했습니다. – alkis

+0

다음은 http://cxf.apache.org/docs/a-simple-jax-ws-service.html을 살펴볼 수있는 예제입니다. –

+0

이것은 프로그래밍 방식으로 서비스를 게시하고 있습니다. 내 webapp의 web.xml 구성 파일을 통해 게시합니다. 프로그래밍 방식으로 인터셉터를 추가하려면 프로그래밍 방식으로 서비스를 게시해야합니다. 당신이 부분적으로 내 질문에 대답했기 때문에 상향 조정되었습니다. 이 부분에 대해서도 대답하십시오. 나는 당신의 취해서를 받아 들일 것입니다. – alkis

관련 문제