You can use beanshell sampler or beanshell preprocessor sampler to call java code in jmeter.
Here you can implement signature generation using java(or add library jar to jmeter runtime) and assign the generated value to a reference variable and place the reference variable in Request Body. Check this Q&A for more information. You can find a excellent overview in Blazemeter Blog