Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] various problems with embedded jetty (in web app)

Eugen,

If you're using jetty-8, then that uses jsp 2.2. In that version of
jasper, the tld files are found via a ServletContainerInitializer,
which is called when the context is about to be deployed and which
examines all the jars in the webapp and container classloaders for
tlds (note that it also insists that jstl tlds are found from jars in
the container classloader only). You will need to have the
AnnotationConfiguration class in jetty's list of configurations
applied to webapps in order to make this work - here's the usual list
applied to webapps:

 <Call name="setAttribute">
      <Arg>org.eclipse.jetty.webapp.configuration</Arg>
      <Arg>
          <Array type="java.lang.String">
               <Item>org.eclipse.jetty.webapp.WebInfConfiguration</Item>
               <Item>org.eclipse.jetty.webapp.WebXmlConfiguration</Item>
               <Item>org.eclipse.jetty.webapp.MetaInfConfiguration</Item>
               <Item>org.eclipse.jetty.webapp.FragmentConfiguration</Item>
               <Item>org.eclipse.jetty.annotations.AnnotationConfiguration</Item>
               <Item>org.eclipse.jetty.webapp.JettyWebXmlConfiguration</Item>
          </Array>
      </Arg>
    </Call>

Hope that helps,
Jan

On 10 January 2012 08:24, Eugen Cepoi <cepoi.eugen@xxxxxxxxx> wrote:
> I'm running jetty from inside my "executable war".
> I've extracted the server dependencies (all content of jetty
> jars,jsp,servlet,etc) at the root of the war and removed them from
> WEB-INF/lib.
> So in this way they are in the containers classpath no? For jstl I'm using
> javax.servlet:jstl artifact.
>
> I'm doing surely something wrong as it works when I run it from eclipse, but
> I can't find what...
>
> Here are the relevant parts of the pom I use. Thank's!
>
> <dependencies>
> ....
> <dependency>
>             <groupId>org.eclipse.jetty</groupId>
>             <artifactId>jetty-server</artifactId>
>             <version>${jetty.version}</version>
>         </dependency>
>         <dependency>
>             <groupId>org.eclipse.jetty</groupId>
>             <artifactId>jetty-webapp</artifactId>
>             <version>${jetty.version}</version>
>         </dependency>
>         <dependency>
>             <groupId>org.eclipse.jetty</groupId>
>             <artifactId>jetty-deploy</artifactId>
>             <version>${jetty.version}</version>
>         </dependency>
>
>          <dependency>
>             <groupId>javax.servlet</groupId>
>             <artifactId>jstl</artifactId>
>             <version>1.2</version>
>         </dependency>
>
>
>         <dependency>
>             <groupId>org.glassfish.web</groupId>
>             <artifactId>jsp-impl</artifactId>
>             <version>[2.2.1,)</version>
>         </dependency>
>
>         <dependency>
>             <groupId>javax.servlet.jsp</groupId>
>             <artifactId>jsp-api</artifactId>
>             <version>[2.2,)</version>
>         </dependency>
>
>         <dependency>
>             <groupId>javax.el</groupId>
>             <artifactId>el-api</artifactId>
>             <version>[2.2,)</version>
>         </dependency>
>
>         <dependency>
>             <groupId>org.glassfish.web</groupId>
>             <artifactId>el-impl</artifactId>
>             <version>[2.2,)</version>
>         </dependency>
> ....
> </dependencies>
>
>
> <plugins>
> ....
> <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-war-plugin</artifactId>
>                 <version>2.1.1</version>
>                 <configuration>
>
> <packagingExcludes>WEB-INF/lib/*jetty*.jar,WEB-INF/lib/*slf4j*.jar,WEB-INF/lib/*log4j*.jar,WEB-INF/lib/*servlet-api*.jar,WEB-INF/lib/*jstl*.jar,WEB-INF/lib/*el-api*.jar,WEB-INF/lib/*el-impl*.jar,WEB-INF/lib/*jsp-api*.jar,WEB-INF/lib/*jsp-impl*.jar</packagingExcludes>
>                 </configuration>
>             </plugin>
>
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-shade-plugin</artifactId>
>                 <version>1.4</version>
>                 <executions>
>                     <execution>
>                         <phase>package</phase>
>                         <goals>
>                             <goal>shade</goal>
>                         </goals>
>                         <configuration>
>
> <createDependencyReducedPom>true</createDependencyReducedPom>
>                             <artifactSet>
>                                 <includes>
>                                     <include>*jetty:*</include>
>                                     <include>org.slf4j:*</include>
>                                     <include>log4j:*</include>
>
> <include>javax.servlet:servlet-api:*</include>
>                                     <include>javax.servlet:jstl:*</include>
>                                     <include>javax.servlet.jsp:*:*</include>
>                                     <include>javax.el:*:*</include>
>                                     <include>org.glassfish.web:*:*</include>
>                                 </includes>
>                             </artifactSet>
>                             <transformers>
>                                 <transformer
>
> implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
>
> <mainClass>xxx.web.server.EmbeddedJettyServer</mainClass>
>                                     <manifestEntries>
>                                         <Class-Path>./etc/</Class-Path>
>                                     </manifestEntries>
>                                 </transformer>
>                             </transformers>
>                         </configuration>
>                     </execution>
>                 </executions>
>             </plugin>
>
>             <plugin>
>                 <artifactId>maven-antrun-plugin</artifactId>
>                 <executions>
>                     <execution>
>                         <id>move-main-class</id>
>                         <phase>compile</phase>
>                         <configuration>
>                             <tasks>
>                                 <copy
>
> todir="${project.build.directory}/${project.artifactId}-${project.version}">
>                                     <fileset
> dir="src/main/webapp/WEB-INF/classes/">
>                                         <include
> name="xxx/web/server/*.class" />
>                                     </fileset>
>                                 </copy>
>                             </tasks>
>                         </configuration>
>                         <goals>
>                             <goal>run</goal>
>                         </goals>
>                     </execution>
>                 </executions>
>             </plugin>
> ....
> </plugins>
>
>
>
> 2012/1/9 Jan Bartel <janb@xxxxxxxxxxx>
>>
>> Eugen,
>>
>> The jstl jars need to be on the container's classpath, not inside your
>> webapp. Can you see the $JETTY_HOME/lib/jsp directory contains the
>> jstl jars org.apache.taglibs.standard.glassfish_1.2.0.v201004190952.jar
>> and javax.servlet.jsp.jstl_1.2.0.v201004190952.jar
>>
>> regards
>> Jan
>>
>> On 28 December 2011 09:54, Eugen Cepoi <cepoi.eugen@xxxxxxxxx> wrote:
>> > Hi,
>> >
>> > I maybe said that everything was fine a bit fast...
>> > When I run the assembled war by maven (if it's from inside eclipse its
>> > ok)
>> > I've got this exception when I try to display a jsp with jstl inside
>> >
>> > The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved
>> > in
>> > either web.xml or the jar files deployed with this application
>> >
>> > If I replace jetty versions by RC1 it works again (but of course it's
>> > not ok
>> > as I need the correction provided by RC2).
>> >
>> > Are you able to reproduce this bug? If no I can provide an example.
>> >
>> > Happy christmas ! =)
>> >
>> > Eugen
>> >
>> >
>> > 2011/12/23 Eugen Cepoi <cepoi.eugen@xxxxxxxxx>
>> >>
>> >> Yep its included in rc2.
>> >> Thanks,
>> >> Eugen
>> >>
>> >> Le 22 déc. 2011 23:58, "Jesse McConnell" <jesse.mcconnell@xxxxxxxxx> a
>> >> écrit :
>> >>
>> >>> I just released 8.1.0.RC2 a few minutes ago, I suspect this change
>> >>> would be in that..
>> >>>
>> >>> cheers,
>> >>> jesse
>> >>>
>> >>> --
>> >>> jesse mcconnell
>> >>> jesse.mcconnell@xxxxxxxxx
>> >>>
>> >>>
>> >>>
>> >>> On Thu, Dec 22, 2011 at 16:22, Jan Bartel <janb@xxxxxxxxxxx> wrote:
>> >>> > Eugen,
>> >>> >
>> >>> > Glad to hear this is working. This change will be released with
>> >>> > 8.1.0.RC1, which should be happening within the next few weeks.
>> >>> > No idea on the windows/linux difference, sorry. Not something I've
>> >>> > come across before with jetty.
>> >>> >
>> >>> > Jan
>> >>> >
>> >>> > On 23 December 2011 09:12, Eugen Cepoi <cepoi.eugen@xxxxxxxxx>
>> >>> > wrote:
>> >>> >> Hi Jan,
>> >>> >> Nice, it corrects the problem of hot deployment of jsps and the
>> >>> >> jsp-config
>> >>> >> from the web.xml
>> >>> >> Could it be integrated in the RC1 (or an RC2) so people using range
>> >>> >> version
>> >>> >> of jetty can get it? Actually the latest version seems to be RC1 in
>> >>> >> the
>> >>> >> maven-metadata file, so if I don't explicit that I want the
>> >>> >> 8.1.0-SNAPSHOT I
>> >>> >> can't get it.
>> >>> >>
>> >>> >> Also do you have some clue on the difference of the memory load in
>> >>> >> RAM
>> >>> >> between windows and linux?
>> >>> >> However, it has maybe nothing do with jetty...
>> >>> >>
>> >>> >> Kind regards,
>> >>> >> Eugen
>> >>> >>
>> >>> >>
>> >>> >> 2011/12/22 Jan Bartel <janb@xxxxxxxxxxx>
>> >>> >>>
>> >>> >>> Fix checked in to trunk. I've also pushed a new snapshot
>> >>> >>> distribution
>> >>> >>> here:
>> >>> >>>
>> >>> >>>
>> >>> >>>
>> >>> >>> https://oss.sonatype.org/content/groups/jetty/org/eclipse/jetty/jetty-distribution/8.1.0-SNAPSHOT/
>> >>> >>>
>> >>> >>> Please select and download the snapshot with the most recent date
>> >>> >>> on
>> >>> >>> it and try it out - the jsp config should now be working.
>> >>> >>>
>> >>> >>> Jan
>> >>> >>>
>> >>> >>> On 22 December 2011 16:08, Jan Bartel <janb@xxxxxxxxxxx> wrote:
>> >>> >>> > Ooops. The jsp problem is a bug in jetty-8's handling of the
>> >>> >>> > jsp-config element. Specifically, we're not returning it for the
>> >>> >>> > new
>> >>> >>> > ServletContext.getJspConfigDescriptor() method, which jasper in
>> >>> >>> > jetty-8 relies on.
>> >>> >>> >
>> >>> >>> > I've opened this bug:
>> >>> >>> > https://bugs.eclipse.org/bugs/show_bug.cgi?id=367383
>> >>> >>> >
>> >>> >>> > Should have a fix for you shortly.
>> >>> >>> >
>> >>> >>> > Jan
>> >>> >>> >
>> >>> >>> > On 22 December 2011 08:50, Eugen Cepoi <cepoi.eugen@xxxxxxxxx>
>> >>> >>> > wrote:
>> >>> >>> >> Hi all,
>> >>> >>> >>
>> >>> >>> >> I have a couple of problems and need your help and some
>> >>> >>> >> recommendations
>> >>> >>> >> on
>> >>> >>> >> embedding jetty in a web app.
>> >>> >>> >> I don't want to use maven to run it (no jetty:run) and I also
>> >>> >>> >> don't
>> >>> >>> >> want to
>> >>> >>> >> use the start jar provided. As I want the war to be self
>> >>> >>> >> sufficient.
>> >>> >>> >> To do so I have, implemented 2 classes for embedding jetty:
>> >>> >>> >>                     - one is the "production" server main
>> >>> >>> >> class,
>> >>> >>> >> that
>> >>> >>> >> will
>> >>> >>> >> be moved to the root of the war,
>> >>> >>> >>                     - the other is an implementation with hot
>> >>> >>> >> deploy
>> >>> >>> >> enabled
>> >>> >>> >> to run during development (from eclipse for example).
>> >>> >>> >> And configured a pom for maven to produce the executable war (I
>> >>> >>> >> use
>> >>> >>> >> shade
>> >>> >>> >> plugin to build it and choose only the needed artifacts to be
>> >>> >>> >> copied at
>> >>> >>> >> the
>> >>> >>> >> root and deleted them from the WEB-INF/lib).
>> >>> >>> >>
>> >>> >>> >> Most of the things work fine except :
>> >>> >>> >>                     - If I use jetty 8 the jsp-config in
>> >>> >>> >> web.xml
>> >>> >>> >> doesn't
>> >>> >>> >> seem to be recognised, if I go back to jetty 7 and servlet 2.5
>> >>> >>> >> it's ok.
>> >>> >>> >> However I would like to use jetty 8... am I missing something?
>> >>> >>> >> I
>> >>> >>> >> am
>> >>> >>> >> using
>> >>> >>> >> glassfishs implementations.
>> >>> >>> >>
>> >>> >>> >>                     - Second problem. When I am using my
>> >>> >>> >> development
>> >>> >>> >> implementation of the server I have nullpointerexception in
>> >>> >>> >> JstlBaseTLV.validate after a hot deploy of a jsp. If I look at
>> >>> >>> >> the
>> >>> >>> >> code, I
>> >>> >>> >> can see that the initParameters map is null. Do you have any
>> >>> >>> >> clue
>> >>> >>> >> on
>> >>> >>> >> how I
>> >>> >>> >> could solve this problem? This one is pretty annoying...
>> >>> >>> >>
>> >>> >>> >>                     - Last problem, when I am running the
>> >>> >>> >> server
>> >>> >>> >> on
>> >>> >>> >> debian
>> >>> >>> >> linux the app takes twice as much memory as in windows xp...
>> >>> >>> >> does
>> >>> >>> >> someone
>> >>> >>> >> already had this kind of problem?
>> >>> >>> >>
>> >>> >>> >> I am joining to the mail an extract of the pom and the two
>> >>> >>> >> simplified
>> >>> >>> >> server
>> >>> >>> >> classes.
>> >>> >>> >> Thank you for your help.
>> >>> >>> >>
>> >>> >>> >> Kind regards,
>> >>> >>> >> Eugen
>> >>> >>> >>
>> >>> >>> >> _______________________________________________
>> >>> >>> >> jetty-users mailing list
>> >>> >>> >> jetty-users@xxxxxxxxxxx
>> >>> >>> >> https://dev.eclipse.org/mailman/listinfo/jetty-users
>> >>> >>> >>
>> >>> >>> _______________________________________________
>> >>> >>> jetty-users mailing list
>> >>> >>> jetty-users@xxxxxxxxxxx
>> >>> >>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>> >>> >>
>> >>> >>
>> >>> >>
>> >>> >> _______________________________________________
>> >>> >> jetty-users mailing list
>> >>> >> jetty-users@xxxxxxxxxxx
>> >>> >> https://dev.eclipse.org/mailman/listinfo/jetty-users
>> >>> >>
>> >>> > _______________________________________________
>> >>> > jetty-users mailing list
>> >>> > jetty-users@xxxxxxxxxxx
>> >>> > https://dev.eclipse.org/mailman/listinfo/jetty-users
>> >>> _______________________________________________
>> >>> jetty-users mailing list
>> >>> jetty-users@xxxxxxxxxxx
>> >>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>> >
>> >
>> >
>> > _______________________________________________
>> > jetty-users mailing list
>> > jetty-users@xxxxxxxxxxx
>> > https://dev.eclipse.org/mailman/listinfo/jetty-users
>> >
>> _______________________________________________
>> jetty-users mailing list
>> jetty-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
>
>
> _______________________________________________
> jetty-users mailing list
> jetty-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>


Back to the top