2011-11-29 3 views
1

두 개의 Java 프로젝트가 있습니다. project1에서 project2 메소드를 호출해야합니다. 두 프로젝트 모두 핵심 Java 개념을 사용하여 개발되고 별도로 실행됩니다. 이 경우 RMI, WebServices, JMS 등의 메소드를 원격으로 호출하는 기술을 사용해야한다는 것을 알고 있으므로 project1에서 project2 메소드를 자주 호출해야합니다. 이를 달성하기위한 최상의 방법은 무엇입니까?원격으로 메소드를 호출하는 방법은 무엇입니까?

감사합니다.

답변

0

프로젝트가 응용 프로그램 서버 또는 서블릿 컨테이너에 배포 되었습니까?

웹 서비스를 사용하여 프로젝트 2의 메소드를 노출 할 수 있습니다. 이는 표준 기반이 될 것이고 나중에 필요할 때 Java가 아닌 프로젝트에서도 서비스에 액세스 할 수있게 해줍니다.

더 잘 작동하려면 비동기식 모드로 구현하십시오. 웹 서비스는 호출의 비동기 모드도 허용합니다. 그러나이 경우 프로젝트 1도 콜백 메소드를 노출해야합니다.

EDIT : Java 6에서는 서블릿 컨테이너 외부에서도 웹 서비스를 전개 할 수있었습니다. 아래 링크가 도움이됩니다. 이 프로덕션 환경에서 사용할 수있는 경우

Standalone web services in Java SE 6

그러나 확실하지 않다.

+0

내 프로젝트가 컨테이너/서버에 배포되어 있지 않으며 jvm에서 실행 중입니다. 내가 project2 웹 서비스를 누른 다음 웹 컨테이너에 배포해야할까요? – sjain

0

RMI는 클라이언트 - 서버 아키텍처에서 사용됩니다. Remote를 확장하는 인터페이스를 구현하는 서버 프로그램이 있으며 서버에서 다른 메소드에 대한 정의 또는 호출을 가지며 객체를 바인딩합니다. 그런 다음 해당 객체를 검색하고 해당 객체를 사용하는 클라이언트 프로그램이 필요합니다. 그러면 서버에서 메소드가 호출됩니다.

프로젝트가 클라이언트 - 서버로 실행중인 경우이 문제를 해결할 수 있습니다.

다음으로 말하는 것은 WebServices입니다. WebServices는 특정 프로토콜을 통해 네트워크를 통해 클라이언트에 서면으로 작성된 일부 코드에 대한 액세스를 제공합니다. 이 코드는 서버에서 실행되며 웹 서비스를 사용하여 클라이언트에서 액세스합니다.

이제는 프로젝트에 대해 어떤 아키텍처를 따르고 있으며 어떤 방법이 더 유용하고 자신의 아키텍처에 적합합니까?

관련 문제