It depends on how many of these you need to create. I assume you are going to be making large numbers of these PDF's. The correct thing to use is Adobe LC Output ES2. The process is first to render your dynamic XFA based forms to static PDF using the Output service with whatever data you have and then to assemble them with the Assembler service (requires a DDX file with the rules for the assembly).
There are APIs (inc. Java) to call these services directly or you can write an orchestration(in Workbench) that does all the steps and you can call the orchestration from various API's including Java. The short lived orchestration capability is also licensed with Output.
This sample would be a good thing to review to see how to construct the orchestration (service) XDP and DDX.
http://help.adobe.com/en_US/livecycle/9.0/samples/ServiceUsageSampleOutputLetterWithAttachment.html
Places to review invoking orchestrations in Java are:
http://help.adobe.com/en_US/livecycle/9.0/programLC/help/000495.html
Best of luck C.