Part of the deployment processing is to make sure that any Java optional library dependencies declared in the JARs of the application are met. (Such dependencies can be declared in the manifest of a JAR file.) To perform this check, GlassFish opens each library JAR in the app to get the JAR's manifest so it can process the extension-list entries from the manifest. It looks like that is what GlassFish is doing when this error occurs.
It looks as if GlassFish has expanded your WAR file into its own directory, and the specific error seems to be that the Java ZipInputStream class is in the process of opening a library JAR file. During that work ZipInputStream tries to read the first entry in the JAR file. The ZipInputStream expects the names of JAR entries to be UTF-8 encoded, but it seems to be finding an entry name that is not a valid UTF-8 string.
Because none of the error handling logic involved displays the name of the library JAR being opened, we have to guess...or do the following.
Can you manually expand your WAR into a directory. Then, for each library JAR in the expanded directory please use
jar ft ${library-jar-name}
I expect that one (or more?) of the library JARs cannot be opened this way and that you will see an error similar to what you saw from GlassFish. Whichever JAR that is might have been built in a way or corrupted somehow such that the name of an entry is not valid UTF-8.
Please let us know what you find.
- Tim
[Message sent by forum member 'tjquinn' (tjquinn)]
http://forums.java.net/jive/thread.jspa?messageID=316561