2012-05-08 3 views
0

WCF 웹 서버와 통신하는 java (JSF)에서 응용 프로그램을 개발 중입니다. C#을 사용하여 웹 서버를 개발했으며 복잡한 객체의 equals 구현을 Java 클라이언트에 보내야합니다.클래스를 WCF 웹 서버를 사용하여 클라이언트에 구현하는 방법

[DataContract(Namespace = "http://mywebservice.com/Entidades")] 
    public class Record{private Int64 id; 
    [DataMember] 
    public Int64 Id 
    { 
     get { return id; } 
     set { id = value; } 
    } 

    public override bool Equals(Object obj) 
    { 
      if(obj is Record){ 
       Record rec = obj as Record; 
       return rec.Id == this.Id; 
     } 
     return false; 
    } 

}

가 먼저 등호에서 [DataMember를] 넣어 tryed,하지만 난 그렇게 할 수 있다는 것을 발견 : 는 예를 들어, C# 클래스를 고려한다. 이 복합 유형의 "equals"구현을 Java 클라이언트에 전송하는 올바른 방법은 무엇입니까?

미리 감사드립니다.

+0

XML이 어떻게 보이겠습니까? – SLaks

+0

복잡한 유형 정의를 사용하여 xml에 equals 오버로드를 보낼 수 있기를 바랬습니다. 뭔가 : ... 정의 ... PauloRLA

답변

4

그건 의미가 없습니다.
웹 서비스는 코드가 아닌 데이터를 전송합니다.

equals()을 소스의 Java 객체에 구현해야합니다.

0

동일 함은 속성이 아니라 메소드입니다. 따라서 서비스가 노출되는 모델에서이 기능을 단순히 노출 할 수있는 방법을 모르겠습니다.

+0

두 레코드를 취해 bool을 반환하지만 과도한 것처럼 보일 수 있습니다. – zimdanen

+0

equals 메서드에 상당량의 비즈니스 논리가 포함되어 있으면이를 서비스 메서드/연산으로 추가 할 수 있습니다. 어느 쪽이든, 서비스 작업은 모델의 일부가 아닙니다. – MattN

+0

메소드 equals에는 중요한 비즈니스 로직이 있지만 웹 서버와 클라이언트 사이의 트래픽을 줄일 수 있어야합니다. 웹 서버 메서드를 만드는 대신 오버 헤드를 줄이기 위해 complexType 정의를 사용하여 equals를 보내려했습니다. 그러나 두 번째 생각, 당신의 대답을 분석, 이건 정말 말이되지 않습니다. – PauloRLA