2010-07-08 2 views
1

.net에서 호출하려고하는 타사 웹 서비스 (peoplesoft EIP 서비스 일 수 있습니다)가 있습니다. 서비스 참조 및 이전 웹 참조를 사용하여이 서비스를 호출하려고 시도했으며 호출 할 때마다 서비스에서 "아무것도"응답을받지 못했습니다.WCF 클라이언트가 제 3 자 웹 서비스에 대한 응답으로 "nothing"을 반환합니다.

저는 SoapUI를 통해 서비스 호출을 실행했으며 정상적으로 작동합니다. 나는 피들러 (Fiddler)를 사용하여 네트워크 트래픽을 포착했으며, SoapUi 또는 .Net으로부터 서비스를 호출 할 때 호출에서 동일한 결과 XML을 얻는다는 사실을 알았습니다. 그래서 통화가 작동 중임을 의미합니다. WCF 내에서 추적 및 로깅을 설정했는데 오류가 표시되지 않습니다. 또한 예외를 던지지도 않습니다.

그래서 내 이론은 .net 서비스에서 xml을 .net 개체로 다시 변환하는 데 어려움을 겪고 있다는 것입니다. 어떤 도움을 주시면 감사하겠습니다

Dim psclient As New psService.LSS_WEBORDER_PortTypeClient 

Dim psreq As New psService.LSS_WEBORDER_REQ_MSG_TypeShape 
psreq = New psService.LSS_WEBORDER_REQ_MSG_TypeShape 

Dim orderinfo(1) As psService.Transaction_TypeShape 

Dim captureid As String = "WB" & Right(Guid.NewGuid.ToString, 8) 
orderinfo(0) = New psService.Transaction_TypeShape 
orderinfo(0).LSS_WEBOHDR_WRK = New psService.LSS_WEBOHDR_WRKMsgDataRecord_TypeShape 
orderinfo(0).LSS_WEBOHDR_WRK.CAPTURE_ID = New psService.CAPTURE_ID_TypeShape 
orderinfo(0).LSS_WEBOHDR_WRK.CAPTURE_ID.Value = captureid 

psreq.MsgData() = orderinfo 

Dim response As New psService.LSS_WEBORDER_RESP_MSG_TypeShape 
response = psclient.LSS_WEBORDER_OP(psreq) 
response.ToString() <-- this throws an exception because "response" is nothing. 
psclient.Close() 

: 여기

내 코드의 조각이다.

답변

1

나는 동료와 어떤 깊은 구글 파고의 도움으로 오늘을 알아 냈다. http://xmlns.oracle.com/Enterprise/Tools/schemas/LSS_WEBORDER_RESP_MSG.v1 그러나 일부 파고 후 나는 응답에 네임 스페이스가 달랐다주의 :

은 기본적으로 피플 WSDL이 있던 공간이었다

http://peoplesoft.com/LSS_WEBORDER_RESP_MSGResponse 그래서 나는 두 가지 옵션이 있습니다. 1. 프록시 클래스를 생성하기 전에 wsdl에서 네임 스페이스를 변경하십시오. 2. 올바른 네임 스페이스를 갖도록 reference.vb 프록시 클래스를 수정하십시오.

지금 옵션 1을 선택합니다. 나는 더 좋은 방법이 있었으면 좋겠다.

여기에서 도움을 받았습니다. http://www.primordialcode.com/index.php/2008/10/15/invoking-javaaxis-web-service-net-return-null-issue/