Tomcat's JNDI implementation is read only I believe. The error you are seeing is the SessionFactory trying to remove itself from JNDI, so its not that serious, all you are getting is an ungraceful shutdown. How do you configure your SessionFactory to bind it in JNDI in the first place?
None of that will bind the SessionFactory in JNDI - do you have a hibernate.properties file kicking around in your deployment too? Its the hibernate.session_factory_name property that tells Hibernate to bind the SessionFactory in JNDI itself, if you are not using that I'm assuming you are trying to bind it manually?
The binding takes place (if Hibernate is doing it) when you create your SessionFactory. If you don't specify hibernate.session_factory_name Hibernate does not try to bind anything. Have you ever set it? Could you have an older version of your configuration deployed somehow?