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
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest