tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthias Keller <matthias.kel...@ergon.ch>
Subject Re: Spurious Problem starting Tomcat7 (garbled class names)
Date Tue, 11 Nov 2014 17:24:39 GMT

On 08.11.2014 17:59, Konstantin Kolinko wrote:
> 2014-11-06 19:33 GMT+03:00 Matthias Keller <matthias.keller@ergon.ch>:
>> Hi
>>
>> We have a spurious problem which still happened quite a few times but is not
>> really reproducible since it only occurs on every 1000. startup or
>> something.
>> The effect is that tomcat scans all class files but somewhere something goes
>> wrong and it tries to load an invalid class name which is often a
>> combination of two effectively existing class names.
>> It is confimed to occur on 7.0.55 with Java7, however it's likely not to be
>> bound to a single version as we've seen it at different sites lately.
>>
>> example with to garbled classes: (3.class being the first, which must come
>> from SomeClass$3.class and the second one being something awefully
>> beautiful:
>> ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class
>> )
>>
>> INFO: Starting Servlet Engine: Apache Tomcat/7.0.55
>> Oct 28, 2014 10:13:15 AM org.apache.catalina.startup.HostConfig deployWAR
>> INFO: Deploying web application archive /opt/tomcat/webapps/test-admin.war
>> Oct 28, 2014 10:13:22 AM org.apache.catalina.startup.ContextConfig
>> processAnnotationsJndi
>> SEVERE: Unable to process resource element
>> [jndi:/localhost/test-admin/WEB-INF/classes/ch/something/3.class] for
>> annotations
>> java.io.FileNotFoundException:
>> jndi:/localhost/test-admin/WEB-INF/classes/ch/something/3.class
>>          at
>> org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
>>          at
>> org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
>>          at
>> org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
>
> At that place Tomcat essentially asks you hard drive for the list of
> files in WEB-INF/classes directory and opens each file that has name
> ending with ".class".
>
> Essentially the directory listing returns some garbage. I do not think
> that Tomcat code is responsible for that.
>
> Is your hardware OK? Is it a local harddrive, or a network one?
Thanks for all your input. Given the fact this has happened recently on 
three totally different systems and OSes (no network drives involved), 
I'd say it would be strange if there was a hardware defect - and also 
there is none known on any of the three systems, however this is 
something I'll further investigate.
I'm not very familiar with the syntax here, does the jndi: URL refer to 
a file in the tomcat's work/localhost/... directory? we have 
unpackWAR=false, or is the class read directly from the WAR file?

Thanks

Matt


Mime
View raw message