Paul
그는 물었다 12년 전
6

웹 서비스 에서 반환되기를 객체에는 가능할까요?

흔히 볼 수 있는 방법이 반환되기를 문자열이어야 반환하는 대신 클래식 객체에는? 그렇지 않으면. what are the best practice? 해당 객체를 xml 과 재구축합니다 객체에는 들어보겠소 전치행렬 on the other side? 다른 가능성을 어떤 것이 있습니까?

답변 11 개

Net 에서는 직렬화하지 통해 언급한 바와 같이, 이렇게 할 수 있습니다. 기본적으로 모든 기본 유형은 이런 시리얼화가 가능합니다 그러하매 자동적 당신꺼에요.

그러나 복잡한 유형, 필요한 경우 객체에는 표시할 수 있는 [시리얼화가 가능합니다] 속성. 함께 같은 복잡한 댁이라면 유형과 속성.

예를 들어 해야 합니다.

[Serializable]
public class MyClass
{
    public string MyString {get; set;}

    [Serializable]
    public MyOtherClass MyOtherClassProperty {get; set;}
}

만약 객체가 될 수 있는 것이 그 예 수 있으며 이 XML webservice 반환되기를 객체에는 설명됨 WSDL 에서.

예: net 에서는 유럽인들은 이 서비스를 통해 xml 로 직렬화, 여기서 다시 원래 있던 많은 그리곤요 재구성되었습니다 시리얼화된 개체는 개체 유형 또는 대리 와 같은 데이터 구조.

반환되기를 객체에는 웹 서비스 (xml) 를 통해 가능하다. 그러나 웹 서비스 플랫폼 및 운영 체제를 사용할 수 있어야 하고 있습니다. 단순히 바이트 스트림 객체를 직렬화하는 중 저장하고 있습니다 에서 개체를 읽어들입니다 같은 절실해졌습니다. 예를 들어, 자바 객체를 바이너리 스트리밍합니다 변환하십시오 직렬화할 수 있습니다 (아마도 기본 64 인코딩입니다 통해 붙여넣습니다 CDATA 기입란) 및 전송하십시오 service& 것이 # 39 의 클라이언트입니다.

그러나 클라이언트입니다 리스토어할 수 있는 자바 기반 마치 객체에는 이벤트여야만 것이다. 뿐만 아니라, 깊이형 복제본에 직렬화할 하는 객체를 할꺼이나 리스토어된 당근이지를. 깊이형 복제본에 비싸다구요 수 있습니다.

Xml 스키마 문서를 만드는 것이 최상의 라우트를 나타내는 스키마 객체 함께 만들고 있는 인스턴스입니다 구체적인.

가능하면, - 즉, 내가 더 이동형이든지 XML 로 바꾸기 객체에는 웹 서비스는 서비스 어떤 언어, 그냥 내가 예상했던것 액세스할 수 있게 만드는 데 필요한 트란스포세르 파서를 / 객체에는 해당 언어로.

이는 거의 없었기 때문에 이 서비스를 WSDL 파일을 설명하는 오토메이티드 일부 시스템에서.

(예를 들어, 우리가 서버 쓴 순수 파이썬 원하는거요 교체하십니까 서버 C 로 짜여진, 클라이언트여야 기록되어 있으며, 코코아 / 오브젝티브-c 의 C++/gSOAP 클라이언트여야 기록되었으므로. 우리가 사용하는 테스트 소이푸이 Java framework 를 기록되어 있다).

JSON 은 웹 표준 방법이 주변에 예쁜 전달하십시오 객체에는 (비호환성의 서브셋에 자바스크립트). 많은 언어로 변환할 수 있는 기능을 기본 객체 - 코드 분할 라리브러리 JSON 예를 들어 [심플레이슨] [2] 에서 볼 수 있다.

Json 라이브러리를 사용하여 대한 자세한 내용은 JSON 웹페이지

[2]: http://undefined.org/python/ # 심플레이슨

&gt >; 다니엘 Auger: &gt >; 다른 답한 것이 있다. &gt >; 그러나 모두 서비스 및 &gt >; 있는 객체를 사용하는 클라이언트 &gt >; 모두 동일한 도메인에 대한 정확한 비헤이비어를 &gt >; # 39 는 아마 didn& 서로 필요한 건 아니다. &gt >; 서비스 지역을 1 위를 차지했다. &gt. &gt. lomax: &gt. S # 39 로 대체하십시오 it& 저는 반대합니다. &gt. 다소 좁은 언급은 하지 않았다. 사용하는 &gt. 도메인 직렬화할 수 있는 웹 서비스 &gt. xml 로 객체에는 고말은 만드는 게 it &gt. 작업할 수 있는 클라이언트 &gt. 그러나 이것은 또한 동일한 도메인에 객체에는 고말은 &gt. 이러한 제한이 클라이언트뿐 &gt. 이를 이용하여 특정 웹 서비스 &gt. # 39 번 you& 노출된 또 작동합니다. &gt. 역동기화 함으로써 다른 클라이언트가 &gt. 도메인에 대한 지식이 없는 &gt. 하지만 여전히 객체에는 사용자 상호 작용 &gt. xml 을 통해 서비스.

@ 맥스. # 39, ve 설명됨 you& 두 가지 상황. 책정안 1: 토니끄 xml 메시지 다시 클라이언트가 동일한 도메인 개체. 내가 돌아갈 수 있는 이 고려해보십시오 object&quot ";). 내 경험상 이는 잘못된 선택의 폭을 넓히고, ll 설명하란말야 I& # 39 이 같습니다. 책정안 2: 클라이언트뿐 재수 이외의 다른 xml 메시지 등을 정확히 동일한 도메인 개체. 그러나 나는 내가 이 뒤에는 100% # 39 이 고려해보십시오 don& 복귀할 것으로, t 는 도메인 개체. # 39 의 상행담관염이라고 it& 메시지를 보내고 또는 트로.

왜 지금 참 / / 필터링되지 트로 객체 직렬화하지 대해 말씀 드리겠습니다 순결케 일반적으로 웹 서비스는 나쁜 발상이다. 오버클로킹된 어설션: 이를 위해 제일 전날에약혼자에게 인컨텍스트 클라이언트 및 서비스를 제공할 수 있는 소유자 또는 클라이언트 라이브러리를 사용하여 모두 사용할 수 있도록 다시 재수 객체에는 it& # 39 의 트루타입. 문제: 이제 이 도메인에 속해 있는 두 가지 유형 및 로케이터로 세미 관련 도메인. 시간이 지나면서 비헤이비어를 필요할 수 없도록 한 도메인에 있는 추가되도록 감지에서 및 환경 오염, 이로 인해 잠재적으로 다른 도메인에 있는 게 문제.

난 보통 기본적으로 시나리오 2. 시나리오 1 만 사용할 이유가 있을 때 내가 압도적인 승인하십시오.

그래서 내가 사용하는 초기 회신과 간결한 사과하겠네 있다. 내가 어떻게 내 의견을 최대한 ᄋ "이번 셨으며 비워집니다 최대 어느 정도 입니다. 맥스 반단면 동의 우리는 것이라는 것 같다.).

@Brian: 내가 모르는 일도 있지만, 어떻게 don& # 39, 자바 가상 머신 (jvm) 에 .net 에서는 객체를 xml 로 다운되어도 base64 써줬지 아닌 시리얼화된 확보하십시오. 이 파일 확장자입니다 redefinitions) 는 웹 서비스 방법 및 객체에는 wsdl 필요한 웹 서비스.

간단히 만들 수 있는 base64 는 웹 서비스 문자열이어야 아니예 tcpg 바란다고 말했습니다

이와 함께 닷넷 (.net) 는 자동으로 객체에는 시리얼화가 가능합니다. # 39 m pretty 같은 방식으로, Java 는 i& 합니다.

여기에 대해 이야기하는 객체에는 하는 기사를 직렬화하지 .NET 에서는: http://www.codeguru.com/Csharp/Csharp/cs_syntax/serialization/article.php/c7201

&gt. 다른 답한 것이 있다. &gt. 그러나 모두 서비스 및 &gt. 있는 객체를 사용하는 클라이언트 &gt. 모두 동일한 도메인에 대한 정확한 비헤이비어를 &gt. # 39 는 아마 didn& 서로 필요한 건 아니다. &gt. 서비스 지역을 1 위를 차지했다.

저는 반대합니다 대체하십시오 it& # 39 에 따라 다소 좁은 언급은 하지 않았다. 사용할 수 있는 도메인 객체를 XML webservice 직렬화할 쉽게 사용할 수 있는 객체에는 의미다 클라이언트뿐 동일한 도메인에 제한이 있지만, 이는 또한 이러한 클라이언트를 특정 웹 서비스를 사용하는 것은 또 다른 클라이언트가 역뱡향으로 작동됨 you& # 39, ve 노출되어 있으므로 해당 도메인의 지식 서비스 XML 을 통해 상호 작용할 수 있지만 여전히 객체에는 없다.

다른 답한 것이 있다. 그러나 모두 서비스 및 클라이언트와 동일한 도메인에 있는 객체를 사용하여 비헤이비어를 양쪽에 계신 didn& # 39, t need a service) 에서 1 위를 차지했다.