Problema em ServletContext.setInitParameter no Jetty 7

111 views
Skip to first unread message

Moisés P. Sena

unread,
Apr 18, 2011, 2:29:35 PM4/18/11
to caelum-vraptor
Bom dia galera!

fui rodar a minha aplicação no Jetty 7 e tive o erro abaixo na
inicialização da aplicação. Será que o VRaptor nao funciona no Jetty?

Trace:
-----------------------------------------------
2011-04-18 15:23:17.125::WARN: Error starting handlers
java.lang.NoSuchMethodError:
javax.servlet.ServletContext.setInitParameter(Ljava/lang/String;Ljava/
lang/String;)Z
at
br.com.orionsistemas.factor.core.CustomVRaptor.registerInitParams(CustomVRaptor.java:
55)
at
br.com.orionsistemas.factor.core.CustomVRaptor.init(CustomVRaptor.java:
24)
at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:
97)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:
653)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:
1239)
at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:
517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:
466)
at
org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:
124)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:
152)
at
org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:
156)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:
152)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:
130)
at org.mortbay.jetty.Server.doStart(Server.java:222)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:
132)
at
org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:
441)
at
org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:
383)
at
org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.java:
210)
at org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:
184)
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:
107)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:
195)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:
148)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:
140)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:
84)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:
59)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:
183)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:
161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:316)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:153)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:451)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:188)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:134)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
43)
at java.lang.reflect.Method.invoke(Method.java:616)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:
290)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:
230)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:
409)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:
352)
-----------------------------------------------

Lucas Cavalcanti

unread,
Apr 18, 2011, 2:30:37 PM4/18/11
to caelum-...@googlegroups.com
tire o jar servlet-api.jar do seu classpath


--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To post to this group, send email to caelum-...@googlegroups.com.
To unsubscribe from this group, send email to caelum-vrapto...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/caelum-vraptor?hl=en.


Moisés P. Sena

unread,
Apr 18, 2011, 3:40:38 PM4/18/11
to caelum-...@googlegroups.com
2011/4/18 Lucas Cavalcanti <lucasm...@gmail.com>

tire o jar servlet-api.jar do seu classpath


estou usando o maven.

Removi todas as clases do meu src, usando o pom.xml abaixo, quando acrescento o filter do VRaptor o erro é exibido, sem o filter. a aplicação funciona normalmente.


meu projeto:
--------------------------
$~/factor-sample-application$ tree
.
|-- bin
|-- build
|   `-- classes
|-- META-INF
|-- pom.xml
`-- src
    |-- main
    |   |-- java
    |   |   |-- controllers
    |   |   |   `-- CoreindexController.java
    |   |   `-- log4j.xml
    |   |-- resources
    |   |   `-- log4j.xml
    |   `-- webapp
    |       |-- index.html
    |       |-- META-INF
    |       |   `-- MANIFEST.MF
    |       `-- WEB-INF
    |           |-- jsp
    |           |   `-- coreindex
    |           |       `-- index.jsp
    |           |-- lib
    |           `-- web.xml
    `-- test
        `-- java

--------------------------

Meu pom.xml:
--------------------------
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>br.com.orionsistemas.factor</groupId>
    <artifactId>factor-sample-application</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>factor</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>com.googlecode.t7mp</groupId>
                <artifactId>maven-t7-plugin</artifactId>
                <version>0.9.6</version>
            </plugin>

            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>6.1.16</version>
                <configuration>
                    <connectors>
                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                            <port>9090</port>
                            <maxIdleTime>60000</maxIdleTime>
                        </connector>
                    </connectors>
                    <requestLog implementation="org.mortbay.jetty.NCSARequestLog">
                        <filename>target/log</filename>
                        <retainDays>90</retainDays>
                        <append>true</append>
                        <extended>false</extended>
                        <logTimeZone>GMT</logTimeZone>
                    </requestLog>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>br.com.caelum</groupId>
            <artifactId>vraptor</artifactId>
            <version>3.2.0</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>
    <distributionManagement>
        <repository>
            <id>releases</id>
            <url>http://localhost:8081/nexus/content/repositories/releases</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Internal Snapshots</name>
            <url>http://localhost:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>
</project>
--------------------------

o no trace:
--------------------------
$ mvn clean && mvn jetty:run

....

---------------2011-04-18 16:39:33.495::WARN:  Failed startup of context org.mortbay.jetty.plugin.Jetty6PluginWebAppContext@469e0c2d{/factor-sample-application,/home/moi/dev/factor-workspace/factor-sample-application/src/main/webapp}
java.lang.IllegalArgumentException: Resource path [/home/moi/dev/factor-workspace/factor-sample-application/src/main/webapp/WEB-INF/classes] does not denote a directory
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.retrieveMatchingFiles(PathMatchingResourcePatternResolver.java:563)
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.doFindMatchingFileSystemResources(PathMatchingResourcePatternResolver.java:543)
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.doFindPathMatchingFileResources(PathMatchingResourcePatternResolver.java:526)
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.findPathMatchingResources(PathMatchingResourcePatternResolver.java:342)
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.getResources(PathMatchingResourcePatternResolver.java:263)
    at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:182)
    at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:201)
    at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.scan(ClassPathBeanDefinitionScanner.java:180)
    at br.com.caelum.vraptor.ioc.spring.ComponentScanner.scan(ComponentScanner.java:99)
    at br.com.caelum.vraptor.ioc.spring.VRaptorApplicationContext.scanWebInfClasses(VRaptorApplicationContext.java:122)
    at br.com.caelum.vraptor.ioc.spring.VRaptorApplicationContext.loadBeanDefinitions(VRaptorApplicationContext.java:93)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
    at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.start(SpringBasedContainer.java:68)
    at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:82)
    at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:110)
    at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103)
2011-04-18 16:39:33.500::INFO:  Opened /home/moi/dev/factor-workspace/factor-sample-application/target/log
2011-04-18 16:39:33.510::INFO:  Started SelectChann...@0.0.0.0:9090
[INFO] Started Jetty Server

-----------

--
Moisés P. Sena
(Analista e desenvolvedor de sistemas WEB e mobile)
http://www.moisespsena.com
http://linux.moisespsena.com

Paulo Silveira - Caelum

unread,
Apr 18, 2011, 4:07:25 PM4/18/11
to caelum-...@googlegroups.com
Ola Moises

Realmente esta parecendo que é um servlet.jar a mais no classpath da
aplicacao, e uma versao _bem_ antiga para nao ter setInitiParameter.
Algo estranho, ja que pelo maven parece tudo correto.

abracos

--
Paulo Silveira
Caelum | Ensino e Inovação
www.caelum.com.br


2011/4/18 Moisés P. Sena <moise...@gmail.com>:

Paulo Silveira - Caelum

unread,
Apr 18, 2011, 4:08:25 PM4/18/11
to caelum-...@googlegroups.com
Perdao

É o contrario. setInitParameter pede servlets 3. Jetty 7 nao tem
servlets 3, so o 8 ou o 7 com uns plugins, correto?

Lucas, porque sera que esta obrigando a necessidade de servlet 3?


--
Paulo Silveira
Caelum | Ensino e Inovação
www.caelum.com.br


2011/4/18 Paulo Silveira - Caelum <paulo.s...@caelum.com.br>:

Lucas Cavalcanti

unread,
Apr 18, 2011, 4:31:47 PM4/18/11
to caelum-...@googlegroups.com
não deveria estar obrigando... tem uma dependência provided pra servlet 3.0, o maven não deveria estar baixando

[]'s

Moisés P. Sena

unread,
Apr 19, 2011, 10:47:11 AM4/19/11
to caelum-...@googlegroups.com
Pessoal, alguma idéia de como resolver o problema?

{}'s

Lucas Cavalcanti

unread,
Apr 19, 2011, 11:38:45 AM4/19/11
to caelum-...@googlegroups.com
tirar o jar do servlet 3 do classpath

--

Paulo Silveira - Caelum

unread,
Apr 19, 2011, 11:56:39 AM4/19/11
to caelum-...@googlegroups.com
Ola!

Agora achei o erro: nao é no vraptor.

O problema é aqui:
br.com.orionsistemas.factor.core.CustomVRaptor

Essa classe, da orionsistemas, esta usando um metodo de ServletContext
que so existe em servlet 3 (registerInitParams). Duas opcoes: remover
essa invocacao, ou usar um container que tenha serlvet 3.

abracos

--
Paulo Silveira
Caelum | Ensino e Inovação
www.caelum.com.br


2011/4/18 Moisés P. Sena <moise...@gmail.com>:

Moisés P. Sena

unread,
Apr 19, 2011, 1:55:30 PM4/19/11
to caelum-...@googlegroups.com


2011/4/19 Paulo Silveira - Caelum <paulo.s...@caelum.com.br>

Ola!

Agora achei o erro: nao é no vraptor.

O problema é aqui:
br.com.orionsistemas.factor.core.CustomVRaptor

Essa classe, da orionsistemas, esta usando um metodo de ServletContext
que so existe em servlet 3 (registerInitParams). Duas opcoes: remover
essa invocacao, ou usar um container que tenha serlvet 3.

abracos


Removi a classe que você falou (parece que resolveu), agora aparece um erro do Scan Annotation ao ler o diretorio classes para scanner.

o comando:

$ mvn clean && mvn compile && mvn install && mvn jetty:run


trace:
---------------------------
 Caused by: java.io.FileNotFoundException: /home/moi/dev/factor-workspace/factor-sample-application/src/main/webapp/WEB-INF/classes (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:137)
    at java.io.FileInputStream.<init>(FileInputStream.java:96)
    at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:87)
    at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:178)
    at java.net.URL.openStream(URL.java:1029)
    at org.scannotation.archiveiterator.FileProtocolIteratorFactory.create(FileProtocolIteratorFactory.java:23)
    at org.scannotation.archiveiterator.IteratorFactory.create(IteratorFactory.java:40)
    at org.scannotation.AnnotationDB.scanArchives(AnnotationDB.java:291)
    at br.com.caelum.vraptor.scan.ScannotationComponentScanner.scanWebInfClasses(ScannotationComponentScanner.java:68)
    ... 48 more
2011-04-19 14:51:19.836::INFO:  Opened /home/moi/dev/factor-workspace/factor-sample-application/target/log
2011-04-19 14:51:19.848::INFO:  Started SelectChann...@0.0.0.0:9090
[INFO] Started Jetty Server


Lucas Cavalcanti

unread,
Apr 19, 2011, 2:01:05 PM4/19/11
to caelum-...@googlegroups.com
coloque isso no pom.xml:

<project..>
   ...
  <build>
     ..
     <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>
  </build>
</project>

--

Moisés P. Sena

unread,
Apr 20, 2011, 7:40:11 AM4/20/11
to caelum-...@googlegroups.com
Bom dia pessoal!!

Agora funcionou, bastou trocar o comando "mvn jetty:run" para "mvn jetty:run-war":

$ mvn jetty:run-war


2011/4/19 Lucas Cavalcanti <lucasm...@gmail.com>

coloque isso no pom.xml:

<project..>
   ...
  <build>
     ..
     <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>
  </build>
</project>

Mesmo depois de fazer isto, nao funcionou. So funcionou mesmo quando troquei o comando (como citei acima)




Grande abraço a todos vocês!!
 
Reply all
Reply to author
Forward
0 new messages