I have fixed this problem. It's my fault in client side, I must specify the MUC service name as configured in server side, It's different with tigase service name, configured as below:
--virt-hosts = localhost #tigase server name
--external= muc.localhost:muc-pass #muc.localhost is muc service name
So the client side code is as below:
MultiUserChat muc = new MultiUserChat(connection, roomName
+ "@muc." + connection.getServiceName());
Thanks to @Haider.