Why texCoordGeneration takes no effect.

I’ve run into problem, since it was my first time using xith3d.
everything is okay when i use

Appearance app1 = new Appearance();
app1.setTextureUnitState(getRusty());
app1.setTexCoordGeneration( new TexCoordGeneration(TexCoordGeneration.SPHERE_MAP,TexCoordGeneration.TEXTURE_COORDINATE_3));

but i got a totaly black shape when i changed my code into this:

    TextureUnitState tc = new TextureUnitState(getRusty(),null,null);
     tc.setTexCoordGeneration(new TexCoordGeneration(TexCoordGeneration.SPHERE_MAP,TexCoordGeneration.TEXTURE_COORDINATE_3));
    app1.setTextureUnitState(new TextureUnitState[]{tc});

Anybody help me~~ :o :o