diff --git a/xml/server.go b/xml/server.go index ff25100..cbc760e 100644 --- a/xml/server.go +++ b/xml/server.go @@ -104,6 +104,16 @@ func (c *CodecRequest) WriteResponse(w http.ResponseWriter, response interface{} fault.String += fmt.Sprintf(": %v", c.err) } xmlstr = fault2XML(fault) + } else if methodErr != nil { + var fault Fault + switch methodErr.(type) { + case Fault: + fault = methodErr.(Fault) + default: + fault = FaultApplicationError + fault.String += fmt.Sprintf(": %v", methodErr) + } + xmlstr = fault2XML(fault) } else { xmlstr, _ = rpcResponse2XML(response) }