2014-04-02 10 views
6

biegnę trywialny aplikacji internetowej za pomocą Hello World, działa na i używając maven-jetty-plugin.Uzyskiwanie błąd pliku skanowania podczas pracy na java jetty 9 8 za pomocą wtyczki Maven molo

public class HelloWorldServlet extends HttpServlet { 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) { 
     try { 
      String message = "Hello Jetty From the HelloWorldServlet"; 
      OutputStream stream = response.getOutputStream(); 
      stream.write(message.getBytes()); 
      stream.flush(); 
     } catch (IOException ex) { 
      Logger.getLogger(HelloWorldServlet.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

I dobrze odwzorowany w pliku web.xml:

<servlet> 
     <servlet-name>hello</servlet-name> 
     <servlet-class>org.tarrsalah.jetty.example.HelloWorldServlet</servlet-class>     
    </servlet> 

    <servlet-mapping> 
     <servlet-name>hello</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

Ale wydaje się, że pomost nie mogą fin moją klasę serwletu przy uruchamianiu mvn jetty: run, co ja tu brakuje?

--- jetty-maven-plugin:9.1.3.v20140225:run (default-cli) @ jetty-example --- 
2014-04-02 10:09:46.126:INFO::main: Logging initialized @12796ms 
Configuring Jetty for project: jetty-example 
webAppSourceDirectory not set. Trying src/main/webapp 
Reload Mechanic: automatic 
Classes = /home/tarrsalah/src/misc/jetty-exampe/target/classes 
Context path =/
Tmp directory = /home/tarrsalah/src/misc/jetty-exampe/target/tmp 
Web defaults = org/eclipse/jetty/webapp/webdefault.xml 
Web overrides = none 
web.xml file = file:/home/tarrsalah/src/misc/jetty-exampe/src/main/webapp/WEB-INF/web.xml 
Webapp directory = /home/tarrsalah/src/misc/jetty-exampe/src/main/webapp 
2014-04-02 10:09:46.291:INFO:oejs.Server:main: jetty-9.1.3.v20140225 
2014-04-02 10:09:46.954:INFO:oeja.AnnotationConfiguration:main: Scanned 1 container path jars, 0 WEB-INF/lib jars, 1 WEB-INF/classes dirs in 82ms for context [email protected]{/,file:/home/tarrsalah/src/misc/jetty-exampe/src/main/webapp/,STARTING}{file:/home/tarrsalah/src/misc/jetty-exampe/src/main/webapp/} 
2014-04-02 10:09:46.954:WARN:oejw.WebAppContext:main: Failed startup of context [email protected]{/,file:/home/tarrsalah/src/misc/jetty-exampe/src/main/webapp/,STARTING}{file:/home/tarrsalah/src/misc/jetty-exampe/src/main/webapp/} 
java.lang.RuntimeException: Error scanning file HelloWorldServlet.class 
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:705) 
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) 
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) 
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) 
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) 
    at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:821) 
    at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:159) 
    at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:542) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: 
java.lang.IllegalArgumentException 
    at org.objectweb.asm.ClassReader.<init>(Unknown Source) 
    at org.objectweb.asm.ClassReader.<init>(Unknown Source) 
    at org.objectweb.asm.ClassReader.<init>(Unknown Source) 
    at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:970) 
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:700) 
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) 
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) 
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) 
    at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) 
    at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:821) 
    at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:159) 
    at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:542) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536) 
    at java.lang.Thread.run(Thread.java:744) 
2014-04-02 10:09:46.958:WARN:oejsh.RequestLogHandler:main: !RequestLog 
2014-04-02 10:09:47.108:INFO:oejs.ServerConnector:main: Started [email protected]{HTTP/1.1}{0.0.0.0:8080} 
2014-04-02 10:09:47.109:INFO:oejs.Server:main: Started @13779ms 
Started Jetty Server 

pom.xml

<plugin> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>9.1.3.v20140225</version>    
</plugin> 

Aktualizacja:

Pracował po zmianie konfiguracji maven-compiler-plugin od 1,8 do 1,7, What'is złego korzystania z ?

+4

niezwiązane z problemu, ale zapomnij określić kodowanie do wykorzystania w 'wiadomości.getBytes() ' – fge

+0

@fge +1, To tylko przykład Hello World, aby uruchomić i uruchomić :) – tarrsalah

Odpowiedz

-2

Ze względu na różnice między wersja Java (8), a wersja ASM dołączonego w Jetty masz rodzaj wyjątkami masz doświadczenie.

Musisz zrobić wersje zgodną ze sobą pobieraniaASM5,0 lub większą i wymiany następujących 2 pliki w instalacji Jettyfolder:

1.asm-4.1.jarzasm-5.0_BETA.jar

2.ASM-Commons 4.1.jarzasm-commons-5.0_BETA.jar

+1

Czy to się zmieni w przyszłych wersjach Jetty 9.1? –

+1

Pojawiła się aktualizacja biblioteki asm, której używamy, wraz z niektórymi zmianami api do obsługi nowego skanowania kodu bajtowego JDK8. – GingerHead

7

Aby dokonać tej pracy, trzeba dodać ASM 5 do zależnościami pomostu-maven- wtyczka na razie

<plugin> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <dependencies> 
     <dependency> 
      <groupId>org.ow2.asm</groupId> 
      <artifactId>asm</artifactId> 
      <version>5.0.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.ow2.asm</groupId> 
      <artifactId>asm-commons</artifactId> 
      <version>5.0.2</version> 
     </dependency> 
    </dependencies> 
</plugin> 
+1

To może wcale nie działać, ponieważ pomost jest zależny od starszej wersji, która ma inny "grupowy" asm i tym samym maven prawdopodobnie nie będzie zarządzał zamianą zależności. – adam

+1

nie działa dla mnie. jetty-maven-plugin 9.4.0.v20161208 – Eugene

Powiązane problemy