2011-04-19 2 views
1

일부 엔티티를 업데이트하기 위해 SOAP 요청을 보냅니다. 거의 동일한 것을 (업데이트 대신) 생성하면 모든 것이 잘 작동합니다. 클라이언트와 전송에서 로깅을 추적하고 마침내 실마리를 줬습니다.SUDS 본문의 SOAP 부분이 손실되었습니다.

DEBUG:suds.client:sending to (https://webservices.autotask.net/ATServices/1.5/atws.asmx) 
message: 
<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:ns0="http://autotask.net/ATWS/v1_5/" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP-ENV:Header/> 
<ns1:Body> 
    <ns0:update> 
    <ns0:Entities xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <ns0:Entity xsi:type="ns0:Ticket"> 
     <ns0:id>123</ns0:id> 
     <ns0:UserDefinedFields xsi:type="xsd:string"></ns0:UserDefinedFields> 
     <ns0:AccountID xsi:type="xsd:string">123</ns0:AccountID> 
     <ns0:AllocationCodeID xsi:type="xsd:string">123</ns0:AllocationCodeID> 
     <ns0:CompletedDate xsi:type="xsd:string">2011-04-04 14:47:02</ns0:CompletedDate> 
     <ns0:CreateDate xsi:type="xsd:string">2011-04-04 04:08:02.000203</ns0:CreateDate> 
     <ns0:CreatorResourceID xsi:type="xsd:string">123</ns0:CreatorResourceID> 
     <ns0:Description xsi:type="xsd:string"></ns0:Description> 
     <ns0:DueDateTime xsi:type="xsd:string">2011-04-05 09:36:00</ns0:DueDateTime> 
     <ns0:EstimatedHours xsi:type="xsd:string">0.0</ns0:EstimatedHours> 
     <ns0:IssueType xsi:type="xsd:string">123</ns0:IssueType> 
     <ns0:LastActivityDate xsi:type="xsd:string">2011-04-04 14:47:04.000157</ns0:LastActivityDate> 
     <ns0:Priority xsi:type="xsd:string">123</ns0:Priority> 
     <ns0:QueueID xsi:type="xsd:string">123</ns0:QueueID> 
     <ns0:Status xsi:type="xsd:string">123</ns0:Status> 
     <ns0:SubIssueType xsi:type="xsd:string">123</ns0:SubIssueType> 
     <ns0:TicketNumber xsi:type="xsd:string">123</ns0:TicketNumber> 
     <ns0:Title xsi:type="xsd:string">foo</ns0:Title> 
     <ns0:FirstResponseDateTime xsi:type="xsd:string">2011-04-04 14:47:02.000427</ns0:FirstResponseDateTime> 
     <ns0:ResolutionPlanDateTime xsi:type="xsd:string">2011-04-04 14:47:02.000427</ns0:ResolutionPlanDateTime> 
     <ns0:ResolvedDateTime xsi:type="xsd:string">2011-04-04 14:47:02.000427</ns0:ResolvedDateTime> 
     <ns0:Resolution xsi:type="xsd:string"></ns0:Resolution> 
    </ns0:Entity> 
    </ns0:Entities> 
</ns0:update> 
</ns1:Body> 
</SOAP-ENV:Envelope> 
DEBUG:suds.client:headers = {'SOAPAction': u'"http://autotask.net/ATWS/v1_5/update"';, 'Content-Type': 'text/xml; charset=utf-8'} 
DEBUG:suds.transport.http:sending: 
URL:https://webservices.autotask.net/ATServices/1.5/atws.asmx 
HEADERS: {'Soapaction': u'"http://autotask.net/ATWS/v1_5/update"', 'SOAPAction': u'"http://autotask.net/ATWS/v1_5/update"', 'Content-Type': 'text/xml; charset=utf-8', 'Content-type': 'text/xml; charset=utf-8', 'Authorization': 'Basic YXV0b21hdGlhQGFyY2VzLm5ldDp5dWYkOWFyN2VQaDY='} 
MESSAGE: 
<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:ns0="http://autotask.net/ATWS/v1_5/" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP-ENV:Header/> 
<ns1:Body> 
    <ns0:update> 
    <Entities/> 
    </ns0:update> 
</ns1:Body> 
</SOAP-ENV:Envelope> 

을 그리고이와 나는 오류 얻을 : 그것은 다음과 같습니다 그것은 전체 엔터티의 몸 푼다 것으로,

Object reference not set to an instance of an object. 

사람이 어떤 생각을 갖고,이 SOAP 요청과 함께 무슨 일을하고 빈 진행 메시지? 그것은 비눗물, 서버, 코드에 문제가 있습니까?

무슨 일이 일어나고 있는지 이해해 주셔서 감사합니다.

답변

1

나는 내 자신의 질문에 대답하고 있으므로 마침내 닫을 수 있습니다.

누구든지 관심이있는 경우 문제가 해결되었습니다. suds.sx에 버그가보고되었습니다 (here). 이 요청으로 SOAP 요청을 편집 할 때 보낸 요청은 비어 있습니다. 이를 수정하기 위해 sx 부분을 삭제하고 MessagePlugin으로 변경해야했습니다. 관심있는 사람이 있다면 여기에 적어주십시오.

+0

문제를 어떻게 해결했는지 설명해주세요. 나는 또한 동일한 문제에 직면하고있다. 내 비누 몸이 비어 있습니다. – dev

관련 문제