2009-06-02 5 views
0

간단한 질문을 드리겠습니다. 저는 머리를 쓰지 않는 것 같습니다.WSE 3.0에서 콘텐츠 유형을 설정하십시오

상황은 다음

  • 우리는 만들고 WSE 3
  • 웹 서비스를 자바로 작성을 사용하여 웹 서비스에 요청을 보냅니다.

대부분의 문제는 없지만 WebResuest 또는 WebResponse의 ContentType에 영향을 줄 수는 없으며 몇 가지 문제가 있습니다.

내가 점점 계속의 ErrorMessage은 다음

클라이언트는 응답 콘텐츠 유형의 발견 '응용 프로그램/XOP + XML; 유형 = "텍스트/XML을; 문자셋 = UTF-8"'그러나 기대 '텍스트/xml '. 오류 메시지와 함께 요청이 실패했습니다. ....

오류 메시지의 세부 정보에는 서버로부터의 호출에 대한 응답이 있으며 제대로 전달됩니다. 분명히 예외적으로오고 있기 때문에 현재로서는 좋지 않습니다. :)

그래서 응답에 예상되는 콘텐츠 유형을 어떻게 설정할 수 있습니까?

맞으면 WSE 3.0의 요청과 응답이 동일한 ContentType을 가져야합니다. 그래서 나는 요청을 설정하려고 할 것이라고 생각했다. Headers [HttpRequestHeader.ContentType]는 예상 한 것으로 행운이 없다.

우리의 클라이언트가 상속 : (또한, 나는 꽤 많은 장소에서의 HttpWebRequest의 컨텐트 유형을 설정할 수 있지만 그들 중 누구도 트릭을 할 것 같다 없음)이 운이 좋게 해결 된

+0

아마도 이미 알고있을 것입니다.하지만 확실하게 말씀 드리 건데, WSE는 더 이상 쓸모가 없다는 것을 알고 있습니까? VS2008 이상에서는 지원되지 않습니다. –

+0

예. 들었습니다. 우리가 WCF와 함께 몇 가지 장애물을 만났을 때 우리가 여전히 그것을 사용하기로 결정한 이유는 쉬운 해결책이 아니 었습니다. WCF에 대한 문서가 부족하여 실제로 도움이되지도 않았고 사실 웹 서비스 전문가가 아니 었습니다. (tho 나는 노력하고있어 :)) –

답변

1

, 그래서 여기에 나중에 참조 할 수 있도록 솔루션입니다 GetWebResponse (..)라는 메서드가있는 WebServicesClientProtocol 클래스에서 가져옵니다. 단순히 해당 메서드를 재정의하고 응답의 ContentType을 변경하면 문제가 해결되지 않은 것 같습니다.

protected override WebResponse GetWebResponse(System.Net.WebRequest request) 
    { 
     WebResponse response = base.GetWebResponse(request); 
     response.Headers[HttpResponseHeader.ContentType] = "text/xml"; 
     return response; 
    } 
관련 문제