On 12/14/12 1:41 AM, Rick Mann wrote:
> I've been working on this Spring-based webapp. It was originally a 
> servlet-2.5, XML-configured webapp that ran great under Resin and I had a 
> nice spring-test-mvc-based test class for it, and it all worked well.
> After upgrading it to servlet-3.0, and using only annotations to configure 
> (no XML!), the webapp works, but I can't get my test class to work. I'm 
> fairly sure I still haven't configured it correctly, but in the Spring forums 
> I'm being told that I'm linking against the javaee-web-api 6.0 jar, which 
> contains no implementation.
> While this is true, it was also true before the configuration changes. So the 
> guy (a fair expert on Spring) tells me it must be due to some JAR load order 
> difference that's causing the error to appear now. Thing is, in the test 
> environment, I don't have any part of resin involved. I don't know where else 
> I might be getting an implementation.

Try looking at System.getProperty("java.class.path"). That might help 
track down the jar order.

jar order can sometimes be random, depending on how the classpath is built.
> The exception is
>      [junit] java.lang.ClassFormatError: Absent Code attribute in method that 
> is not native or abstract in class file javax/servlet/ServletException
>      [junit]  at java.lang.ClassLoader.defineClass1(Native Method)

That's a very strange error message.

It shouldn't even be possible with normal complication.

It seems to be saying that someone took a post-processor to a compiled 
class that stripped out parts of the .class file, specifically the 
"Code" attribute, which is the part of the .class file that contains the 
actual code for a method.

So whatever jar is containing that class is a weird/broken jar.

-- Scott
>      ...
>      [junit]  at 
> org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:230)
>      ...
>      [junit]  at 
> org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:148)
>      [junit]  at 
> org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:105)
>      ...
> So, I'm just curious if anyone here can shed some light on how this can come 
> to be.
> Thanks!

resin-interest mailing list

Reply via email to