2011-01-17 4 views
1

그래서 웹 서비스를 통해 wpf C# 클라이언트를 자바 백엔드에 연결하고 싶습니다. 나는이에 대한 몇 가지 질문을하고 난 웹 서비스에 새로운 조금 그래서 나와 함께 곰하시기 바랍니다입니다 .. 자바 백엔드와 C# 프론트 엔드는 어떻게 작동합니까?

  1. 내가 WCF 웹 서비스를 사용하는 것 또는 그 가능성이 가장 높은 자바 구조 될 것이다 (그리고 그렇다면 어느 것입니까?)

  2. 비누를 사용하고 있습니까? 나는 이것이 큰 주제라는 것을 알고 있지만, 나는 어느 것이 가장 많이 사용 될지를 찾고 있습니다.

  3. 마지막으로 내 C#을 통해 Java 메소드를 실행할 수 있습니까? 예를 들어 "Customer GetCustomer (int id);라는 서버에있는 메소드가 있다고 가정 해보십시오." ... 내 C# 클라이언트에서이 메서드를 호출 할 수 있을까요? 그리고 어떻게 고객이 다시 돌아올 것이겠습니까? XML로 돌아와서이 XML을 구문 분석하고 클라이언트 측에서 Customer 객체를 작성해야합니다. 의미, 나는 서버와 클라이언트 모두에서 중복 된 클래스 정의를 가질 수 있습니까? 아니면 어떻게 든 동일한 고객 레퍼런스를 공유 할 수 있습니까?

미리 감사드립니다.

답변

6
  1. Java 백엔드에서 SOAP 서비스를 공개하고 WCF를 사용하여 액세스하십시오. 쉽고 간편합니다.

  2. SOAP가 쉬우 며 WCF를 사용할 때 작업이 덜 필요합니다.

  3. 예. SOAP을 사용하면 클래스를 나타내는 ComplexTypes를 정의 할 수 있으므로 C# 매핑은 Java 클래스와 거의 동일합니다.

SOAP 및 WebServices에 대한 일반적인 내용을 읽어 보시기 바랍니다. 많은 질문에 답해야합니다.

+1

enunciate (http://enunciate.codehaus.org/)와 같은 도구를 사용하면 중간 계층에 대해 걱정할 필요없이 서버 코드에서 클라이언트 스텁을 쉽게 얻을 수 있습니다. – Riduidel

+0

wcf를 사용하고 있거나 작동하는 경우 Java 서버가 iis에서 호스팅된다는 의미입니까? – foreyez

+1

아니요, Apache Tomcat처럼 JEE 서비스 컨테이너가 필요합니다. 하지만 Java 백엔드가 아직 웹 서비스로 설계되지 않았다면 정확히 무엇을하려고합니까? –

3

질문 3 번과 관련하여 웹 서비스처럼 Java에서 논리를 노출하면 ... Java 웹 서비스를 배포하는 방법에 대한 지식이 충분하지 않지만 배포 할 때 남아있는 것은 무엇입니까? C#에서 프록시 및 웹 메서드를 호출 시작합니다.


정교화 : (일명 웹/서비스 참조를 추가) (.NET 웹 서비스 또는 WCF에서) 프록시를 만들기는 지역의 같은 자바 WS 방법에있는 모든 노출 클래스/유형을 다시 것을 의미한다 C# 형식. 이러한 유형은 WSDL (Web Service Definition Language)이라는 XML 문서를 사용하여 (Java WS 측에서) 공개됩니다. 이렇게하면 C# 프로그램의 Java WS 웹 메소드에 사용 된 모든 유형의 두 번째 복사본이 만들어지며이 코드는 중복으로 호출 할 수 있지만 .NET에서 Java WS와 통신 할 수있는 유일한 방법입니다

나중에, C# 프로그램이 실행되고 Java WebMethod의 프록시 호출에 도달하면 프록시는 WS 프록시에서 사용하는 웹 메서드 호출의 인수 (클래스 인스턴스)를 XML 표현으로 변환합니다. 이것은 SOAP을 사용하여 객체를 인코딩하는 것으로, 클라이언트는 필요한 모든 데이터/객체 - 인수 (SOAP로 인코딩 됨)를 포함하는 SOAP 봉투를 작성하고 SOAP 봉투를 JAVA WS로 보냅니다. 자바 WS는 엔벨로프에 포함 된 객체를 디코딩 (XML을 자바 인스턴스로 변환)하고 SOAP 엔벨로프에있는 몇 가지 힌트에 따라 정확한 웹 메소드를 호출한다.

Java WS에 대한 호출이 완료되면 클라이언트에 반환되어야하는 모든 인스턴스 (있는 경우)도 SOAP을 사용하여 인코딩되고 WS 호출에 대한 응답으로 클라이언트에 전송됩니다.

관련 문제