Hi,
You are almost there.
As far as I remember you should do something like:
Task task = new Task();
and then
task.setTaskData(new TaskData());
That will you an empty task, in order to make it work and to be able to start and complete the task you will need to create the PeopleAssignment and that information as well.
Check the tests: https://github.com/droolsjbpm/jbpm/blob/master/jbpm-human-task/jbpm-human-task-core/src/test/java/org/jbpm/task/service/base/async/TaskServiceLifeCycleBaseAsyncTest.java
Notice that we are using MVEL to define the task, but you can clearly see the informaiton required by the task structure to work.
Cheers