문제

나는 RMI 전화로 정의된다:

public void remoteGetCustomerNameNumbers(ArrayList<String> customerNumberList, ArrayList<String> customerNameList) throws java.rmi.RemoteException;

함수가 데이터베이스를 조회하고 채우 두 ArrayLists.호출 기능은 아무 것도 얻을 수 없다.이와 함께 작동 벡터 형식입니다.

필요합니까 사용 벡터,거기서 얻을 수 있는 방법이 없이 작업을 만드는 두 개의 호출합니다.나는 몇몇 다른 아이디어를 하는데 아마도 사용을 반환하는 키/값 쌍이지만 알고 싶으면 나이를 얻을 수 있습니다.

업데이트:
나는 것에 동의에 대한 답변을 주어 지금까지 나는 할 수 없습니다.지 알려진 네트워크 비용,그래서 그것이 의미하는 재작업을 반환하는 함수는 사용하는 대신 두 ArrayLists.

도움이 되었습니까?

해결책

톰으로 언급 전달할 수 있습니다 원격체입니다.당신은 클래스를 만들의 목록을 구현하는 원격입니다.언제든지 당신이 통과 무언가를 구현하는 원격으로 인수될 때마다,당신은 그것을 사용하다,돌아서 만드는 원격 통화 자와 작업하는 개체입니다.

다른 팁

인수에 RMI 통화전.Deserialisation 서버에서의 복사본을 만들 목록입니다.는 경우 목록에 남아있는 클라이언트 측면,다음 숫자의 네트워크를 호출 될 것이 매우 높습니다.전달할 수 있습니다 원격지만,주의 성과에 영향을 줍니다.

당신을 잃게 참조할 때 원격 통화.으로 돌아가야 합 목록 보다는 오히려 그들을 기대에 의해 채워진 원격 통화.

다른 사람으로는 이미 언급했듯이,전달할 때는 객체에 대한 매개 변수로는 RMI 방법 개체가 얻는 직렬화한 다음,병렬화된 다른 쪽 끝에 내 대상체를 포함하는 RMI 방법입니다.이를 나누기를 참조 원래부터 개체에 통과,당신은 지금 두 개체:중 하나에서 클라이언트 코드를 호출하는 방법,그리고 중 하나에 원격 측.

이 예제에서 더 나은 것을 당신의 방법을 통화(이후로이 나타나야 하고 있는 두 가지에서 한 가지 방법:점점 고객 이름이 점점 고객 숫자)및 대의 반환하는 결과를 발신자 보다는 전달에서 수집...다음과 같다:

public ArrayList<String> getCustomerNames() throws java.rmi.RemoteException;

public ArrayList<String> getCustomerNumbers() throws java.rmi.RemoteException;

이후 두 ArrayList 과 문자열을 구현하는 직렬화는 결과 컬렉션에서 직렬화 및 전송을 통해 와이어 클라이언트 코드를 호출하는 방법,어느 시점에서 일할 수 있는 데이터와 함께 그러나 당신이 필요합니다.는 경우에는 대신 사용할 필요가 사용자 지정 개체에서 컬렉션을 만큼 당신의 클래스를 구현하 java.io.Serializable 인터페이스,그리고 다음과 같이 다양한 인터페이스를 아무 문제가 없어야합니다.

이 결과 두 개의 전화선을 통해지만,훨씬 간단하고 상호 작용,그리고 방지 참조 파괴 문제가에서 원래 예입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top