the only thing that comes to mind is, have you rebuilt (clean /
compile / package) when changing versions ?
Could you, as a test, compile your app in that server you are deploying it?
do you compile your war on your laptop and copy the war to your
server? if that;s what you do, how about compiling in the same server
as you deploy, for cases where you use a diff version of java on your
laptop (or desktop :) ), than on your server.
And I'm sure you already google about it, but I wonder if something
like this is useful
http://stackoverflow.com/questions/100107/reasons-of-getting-a-java-lang-verifyerror
--
It was me reporting (problem on app server Geronimo with 2.1 build), I have not had time to follow up on the issue yet but I will get around to it and report back.
--from my cell
best regards Peter Petersson
I'm getting the same issue trying to deploy a basic HelloWorld app with Lift 2.5-M4 and Scala 2.10 on Escalante:[0m [0m19:47:03,441 INFO [io.escalante.lift.subsystem] (MSC service thread 1-5) Try to deploy: deployment "helloworld-default.war"[0m [0m19:47:03,442 INFO [io.escalante.lift.subsystem] (MSC service thread 1-5) Metadata is: LiftMetaData(Lift2x(2.5-M4),Scala(2.10.0),Buffer())[0m [0m19:47:04,938 INFO [org.jboss.as.arquillian] (MSC service thread 1-5) Arquillian deployment detected: ArquillianConfig[service=jboss.arquillian.config."helloworld-default.war",unit=helloworld-default.war,tests=[io.escalante.test.lift.helloworld.HelloWorldTest]][0m [0m19:47:04,944 INFO [org.jboss.osgi.framework] (MSC service thread 1-3) JBOSGI011006: OSGi Framework - 2.0.0.Final[0m [0m19:47:04,971 INFO [org.jboss.web] (MSC service thread 1-8) JBAS018210: Register web context: /helloworld-default[0m [31m19:47:05,284 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/helloworld-default]] (MSC service thread 1-8) JBWEB000284: Exception starting filter LiftFilter: java.lang.VerifyError: (class: net/liftweb/util/SecurityHelpers$class, method: hash256 signature: (Lnet/liftweb/util/SecurityHelpers;Ljava/lang/String;)Ljava/lang/String;) Incompatible object argument for function callat net.liftweb.util.Helpers$.<init>(Helpers.scala:34) [lift-util_2.10-2.5-M4.jar:2.5-M4]at net.liftweb.util.Helpers$.<clinit>(Helpers.scala) [lift-util_2.10-2.5-M4.jar:2.5-M4]
> So, if Lift 2.5-M4 is compiling against Servlet 2.5 and (maybe) expecting
> only this library version, maybe all this issue is somehow related to this
> javax.servlet version difference??
>
So, do you get this error even on 2.9.2 ?
I've reproduced this problem without reference to Lift.I built a servlet filter which references commons-codec and it fails to deploy in Geronimo with Scala 2.10 but successes with 2.9.2The project and detailed steps to reproduce are here:
Is anyone on this lift involved in the Geronimo community and want to take this forward to them?
/Jeppe
This is great progress thanks for digging in to this.
--
Thanks for that -- which Tomcat is that?I notice Geronimo use 7.0.27 but I've been using 7.0.35
--
Thank you. My simple (non-Lift) app deploys OK under both those versions. I've also just tried the M4 lift_blank template and that deployed and ran OK under Tomcat 7.0.28 with Scala 2.10 under JDK 1.7.If you can get a github repo together that reproduces the problem, I'm happy to take a look. Just let me know.Richard
-Xmx512m -XX:MaxPermSize=256m -Djava.util.logging.manager=org.jboss.logmanager.LogManager
Thank you Peter. The inverted class-loader is the behaviour I'd expect for a servlet container. Is it now more a question of why it ever worked, rather than why it doesn't work with 2.10? :-)
Sorted for Escalante too!!! :DThanks all for the hints provided cos it was a commons-codec issue on my side too.The problem was that the test war I was using had commons-codec 1.4 as a transitive dependency of Selenium (I hate transitive dependencies...), so when no commons-codec 1.6 was in, I was also getting the CNFE that you saw. But if I added commons-codec 1.6 to the war, you had the two commons-codec jars and it broke in that funny way.I still think there's a problem in Scala 2.10 since it's very confusing how it reacts.Glad to have Escalante working with Scala 2.10 though! 0.3.0 version will contain support for it :)Once again, thanks all :)
--
--
Lift, the simply functional web framework: http://liftweb.net
Code: http://github.com/lift
Discussion: http://groups.google.com/group/liftweb
Stuck? Help us help you: https://www.assembla.com/wiki/show/liftweb/Posting_example_code
---
You received this message because you are subscribed to the Google Groups "Lift" group.
You could always use the scala 2.10 reflection api...
Not sure if you tried, but what if Moo non-final?
Those using Escalante will find that there's no need for any classloading workaround (or black magic) to solve the commons-codec issue.The problem I was facing was a simple user error where I was adding two different versions of commons-codec to the WAR file (again, transitive dependencies stabbing me in the back...)But, what it's nice about Escalante is that deployments work totally separate of the jars the server uses. In fact, JBoss Application Server 7 that sits beneath Escalante uses commons-codec 1.4 for some of its internal components, but this dependency never leaks into the deployments unless you force it through. So, by default, you'll never find server jars leaking into deployments.So, if you wanna avoid classloading nightmares, I'd highly recommend that you deploy Lift apps on Escalante :)
java2ParentDelegation=false
To quote my colleagues who wrote AS7 (see http://www.jboss.org/jbossas):"Hierarchical classloaders are problematic, often causing failed deployments and quirky behavior. The time has come to say goodbye to the parent delegation model and find the path to modularity (i.e. sane classloading).""AS 7 does classloading right. It uses JBoss Modules to provide true application isolation, hiding server implementation classes from the application …."JBoss AS 7.1 is a certified EE6 server, so I don't think your statement is entirely correct ;)