Hello guys,

I have created an API to process a PUT request and a GET request. The  
GET works perfectly fine, but with the PUT the XML seems to be lost in  
its way. I have the following code:

  def dispatch: LiftRules.DispatchPF = {
         case Req("api" :: "person" :: userName :: Nil, "",  
GetRequest) =>
             () => showPerson(userName)

       case r @ Req(List("api", "person"), "", PutRequest) =>
             () => addPerson(r)

In the addPerson method I have the following code:

req.xml match {
             case Full(<person>{parameters @_*}</person>) => {
                     for(parameter <- parameters){ parameter match {

                        All the XML parsing....


                     try {
                         person.validate match {
                             case Nil =>
(<operation id="addPerson" success="true"></operation>), "text/xml")
                             case _ =>
(<operation id="addPerson" success="false"></operation>), "text/xml")
                     catch {
                         case e => Log.error("Could not add person",  
e); BadResponse()
             case _ => Log.error("Request was malformed "+req.view);  

The method always goes through the last case: "Request was malformed".

I was checking the values to req.view and req.xml.toString and the  
results are "person" and empty, respectively.

Any ideas about what it could be happening?

Thanks in advance,


You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to