As said in the documentation, your webapp must return a plaintext YAML, not just a FreeSWITCH command like you're doing.
The YAML must contain the message (actual FS command), and a hook for when the webapp will be next called again. That hook is comprised of an expected_key and an expected_value.
---
msg: |-
SendMsg
call-command: execute
execute-app-name: playback
execute-app-arg: ivr/8000/ivr-welcome_to_freeswitch.wav
event-lock:true
expected_value: CHANNEL_EXECUTE_COMPLETE
expected_key: event_name
Here we have a YAML with 3 keys:
a. msg (sending the command 'execute playback' with arguments to FS);
b. expected_value
c. expected_key
Liverpie will send whatever is in 'msg' towards FreeSWITCH, then wait until in the communication with FS it encounters the variable 'event_name' as having the value 'CHANNEL_EXECUTE_COMPLETE'. When that happens, it calls your webapp again, and so on.
Please use a Java library of your choice to create a well-formed YAML, or I suppose you could create it "by hand". That is what your response should contain.
Good luck and thank you for your feedback,
Alex