2013-06-24 1 views
1

우리는 RAD 8에서 개발중인 jax-ws 클라이언트를 보유하고 있습니다.이 JAR을 지나가는 것으로 클라이언트를 사용할 수있게 만들고 싶습니다. 그래서 자바 프로젝트를 만들고, 클라이언트를 생성 한 다음 "wrapped it around"작은 래퍼를 작성했습니다.jax-ws 클라이언트가 jar로 배포되었습니다.

웹 앱에 배포했는데 제대로 작동합니다. 하지만 이제 WS-Transaction과 같은 "정책 세트"를 서비스 및 클라이언트에 추가하고 있습니다. 간단한 자바 프로젝트는 웹 서비스 클라이언트 용 "프로젝트 패싯"을 지원하지 않으므로 그렇게 할 수 없습니다. 어떤 종류의 프로젝트가 내가이 패싯을 내가 지나칠 수있는 항아리에 세울 수있게 할 것인가? 웹 애플리케이션 내에서 할 수 있다는 것을 알고 있지만, 사용자가 생성을 실행하거나 생성 된 클라이언트 (사용자 친화적이지 않음)를 사용하는 방법을 사용자가 알 필요 없기를 바랍니다.

- 웹 서비스 클라이언트 jar에서 정책 세트를 가져올 수있는 프로젝트 유형은 무엇입니까? - 이미 존재하는 프로젝트의 유형을 어떻게 바꿀 수 있습니까? 프로젝트는 이미 소스 제어에 있으며 나는 모든 것을 다시 만들 필요가 없습니다.

답변

0

특정 앱 서버는 언급하지 않았으므로 WAS 관점에서 대답 할 것입니다. (내가 알고있는 것과 내가 사용하고있는 것만 큼).

정책 세트와 바인딩을 사용하여 서비스 클라이언트를 구성하려면 클라이언트가 일부 컨테이너 관리 구성 요소에 삽입되어야합니다 (@WebServiceRef 주석). 서블릿, 포틀릿, EJB 등이 될 수 있습니다. 각 응용 프로그램은 정책 세트를 적용하고 클라이언트의 인스턴스에 바인딩해야합니다. 그래서 본질적으로 그것을 사용하고있는 사람은 그것을 구성해야합니다. 한 번 해보면 모든 사람이 공유 할 수 없습니다. 네가 어떻게하려고하는지 아니야.

이전에 프로젝트에서 문제가 발생했습니다. 내 솔루션은 EJB를 클라이언트 인스턴스가 삽입 된 컨테이너 관리 구성 요소로 사용하는 것이 었습니다. EJB 구성 요소에 대해 클라이언트를 한 번 구성합니다. 그런 다음 EJB는 서비스 API 메소드에 대한 벙어리 외관을 구현한다. 그런 다음 모든 serlvet은 EJB에 대한 참조를 얻고 (EJB를 더 많이 주입하거나 JNDI 검색을 통해) EJB를 통해 서비스 클라이언트를 호출합니다. 서비스 호출을하기위한 여분의 레이어가되지만 클라이언트가 각 서블릿에 대해 개별적으로 구성되는 것이 아니라 모든 서블릿에 대해 한 번 구성된다는 것을 의미합니다.

+0

예, WAS 7을 사용하고 있습니다. @NickRoth, 좋아, 클라이언트 jar에 설정된 정책을 할당 할 수 없습니다. 하지만 서블릿이 포함 된 webapp에 jar 파일이 포함되어있을 경우 해당 설정을 적용 할 수 없어야합니까? 항아리를 사용하는 내 응용 프로그램은이 항아리를 사용하여 서비스를 제대로 호출하더라도 서비스보기에서 "AppName : null"을 표시합니다. – user1187719

+0

서비스 클라이언트 클래스의 인스턴스를 어떻게 구합니까? –