Not a java programmer, but if Math.exp is a built=in function, I assume that Math.pow is as well.
Don't know what is wrong with your code, but is simple multiplying in a loop not easier.
result *= x;
This is not bug free.
OK, it's still vague but the factorial is probably to calculate e; so calculate e first and fill it in in place of x. Will be a bit faster as well as you only have to calculate e once.[/edit]