yes... provided scope, not runtime. That was a typo.
On Fri, Mar 12, 2010 at 1:47 AM, Stuart McCulloch <[email protected]> wrote: > On 12 March 2010 10:44, Brandon Atkinson <[email protected]>wrote: > >> Guice servlet's 'servlet-api' dependency should be declared in 'provided' >> scope. The sematics of this are described here: >> >> http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope >> In short, a provided dependency is fetched and put in the compile and test >> classpaths, but is not packaged, because it is expected to be provided at >> runtime by the container/jvm/etc.. >> >> ... >> <dependency> >> <groupId>javax.servlet</groupId> >> <artifactId>servlet-api</artifactId> >> <scope>runtime</scope> >> > > ^ that should read <scope>provided</scope> I believe (to avoid further > confusion) > > >> </dependency> >> ... >> >> In this case, the inaccuracy in the pom is not such a big deal. An easy >> way around this for guice-servlet users is to declare the servlet-api in >> their pom as a provided dependency. Maven will then ignore the servlet-api >> dependency during packaging. A purist would say declaring a transitive >> dependency as a direct dependency in a parent project to make up for >> inaccurate dependency declarations in a library isn't right because the >> dependent project may not really use any classes in the dependency. >> However, when using guice-servlet, the chances you don't depend on the >> servlet api are slim, since the whole point is that you using it for writing >> guicy servlet based apps. >> >> -Brandon >> >> >> On Thu, Mar 11, 2010 at 7:16 PM, Dhanji R. Prasanna <[email protected]>wrote: >> >>> >>> >>> On Fri, Mar 12, 2010 at 7:10 AM, Brandon Atkinson < >>> [email protected]> wrote: >>> >>>> I have had this problem before. >>>> >>>> Are you using maven by any chance? >>>> >>>> If so, make sure that you've made servlet-api a provided dependency. >>>> >>>> For some reason, guice-servlet's pom declares that it has a compile time >>>> dependency on servlet-api. This causes the servlet-api classes to be >>>> loaded >>>> into your war. Since there are two defined copies of the servlet api >>>> classes (in two different class loaders) a CCE occurs. >>>> >>> >>> messy =( >>> >>> what do you suggest we do to our pom to fix this? >>> >>> Dhanji. >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "google-guice" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<google-guice%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/google-guice?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "google-guice" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<google-guice%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/google-guice?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-guice%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-guice?hl=en. > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
