2010-05-26 22 views
3

J'essaie de commencer cometd (http://cometd.org/) et jetée 6 ou 7, mais j'ai l'air d'avoir des problèmes. J'ai un script ant qui empaquette mon code dans une guerre avec les binaires cometd 1.1.1 et les binaires jetty qui sont appropriés à la version de jetty à laquelle je déploie la guerre (donc les binaires 7.1.2.v20100523 quand je déploie sur jetée 7.1.2.v20100523 et 6.1.24 quand je déploie au 6.1.24). J'ai d'abord essayé d'obtenir une configuration avec la version 7.1.2.v20100523, mais quand j'ai essayé de déployer, je suis un échantillon très long trace de la pile qui est:Problème avec cometd et jetty 6/7

2010-05-26 15:32:12.906:WARN::Problem processing jar entry org/eclipse/jetty/util/MultiPartOutputStream.class 
java.io.IOException: Invalid resource 
    at org.eclipse.jetty.util.resource.URLResource.getInputStream(URLResource.java:204) 
    at org.eclipse.jetty.util.resource.JarResource.getInputStream(JarResource.java:113) 
    at org.eclipse.jetty.annotations.AnnotationParser$2.processEntry(AnnotationParser.java:575) 
    at org.eclipse.jetty.webapp.JarScanner.matched(JarScanner.java:152) 
    at org.eclipse.jetty.util.PatternMatcher.matchPatterns(PatternMatcher.java:82) 
    at org.eclipse.jetty.util.PatternMatcher.match(PatternMatcher.java:64) 
    at org.eclipse.jetty.webapp.JarScanner.scan(JarScanner.java:75) 
    at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:587) 
    at org.eclipse.jetty.annotations.AbstractConfiguration.parseWebInfLib(AbstractConfiguration.java:107) 
    at org.eclipse.jetty.annotations.AnnotationConfiguration.configure(AnnotationConfiguration.java:68) 
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:992) 
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:579) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:381) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:182) 
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:497) 
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:135) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileChanged(ScanningAppProvider.java:77) 
    at org.eclipse.jetty.util.Scanner.reportChange(Scanner.java:490) 
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:355) 
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:306) 
    at org.eclipse.jetty.util.Scanner$1.run(Scanner.java:258) 
    at java.util.TimerThread.mainLoop(Timer.java:512) 
    at java.util.TimerThread.run(Timer.java:462) 
2010-05-26 15:32:12.907:WARN::Problem processing jar entry org/eclipse/jetty/util/MultiPartWriter.class 
java.io.IOException: Invalid resource 
    at org.eclipse.jetty.util.resource.URLResource.getInputStream(URLResource.java:204) 
    at org.eclipse.jetty.util.resource.JarResource.getInputStream(JarResource.java:113) 
    at org.eclipse.jetty.annotations.AnnotationParser$2.processEntry(AnnotationParser.java:575) 
    at org.eclipse.jetty.webapp.JarScanner.matched(JarScanner.java:152) 
    at org.eclipse.jetty.util.PatternMatcher.matchPatterns(PatternMatcher.java:82) 
    at org.eclipse.jetty.util.PatternMatcher.match(PatternMatcher.java:64) 
    at org.eclipse.jetty.webapp.JarScanner.scan(JarScanner.java:75) 
    at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:587) 
    at org.eclipse.jetty.annotations.AbstractConfiguration.parseWebInfLib(AbstractConfiguration.java:107) 
    at org.eclipse.jetty.annotations.AnnotationConfiguration.configure(AnnotationConfiguration.java:68) 
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:992) 
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:579) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:381) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:182) 
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:497) 
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:135) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileChanged(ScanningAppProvider.java:77) 
    at org.eclipse.jetty.util.Scanner.reportChange(Scanner.java:490) 
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:355) 
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:306) 
    at org.eclipse.jetty.util.Scanner$1.run(Scanner.java:258) 
    at java.util.TimerThread.mainLoop(Timer.java:512) 
    at java.util.TimerThread.run(Timer.java:462) 
2010-05-26 15:32:12.907:WARN::Problem processing jar entry org/eclipse/jetty/util/Attributes.class 
java.io.IOException: Invalid resource 
    at org.eclipse.jetty.util.resource.URLResource.getInputStream(URLResource.java:204) 
    at org.eclipse.jetty.util.resource.JarResource.getInputStream(JarResource.java:113) 
    at org.eclipse.jetty.annotations.AnnotationParser$2.processEntry(AnnotationParser.java:575) 
    at org.eclipse.jetty.webapp.JarScanner.matched(JarScanner.java:152) 
    at org.eclipse.jetty.util.PatternMatcher.matchPatterns(PatternMatcher.java:82) 
    at org.eclipse.jetty.util.PatternMatcher.match(PatternMatcher.java:64) 
    at org.eclipse.jetty.webapp.JarScanner.scan(JarScanner.java:75) 
    at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:587) 
    at org.eclipse.jetty.annotations.AbstractConfiguration.parseWebInfLib(AbstractConfiguration.java:107) 
    at org.eclipse.jetty.annotations.AnnotationConfiguration.configure(AnnotationConfiguration.java:68) 
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:992) 
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:579) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:381) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:182) 
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:497) 
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:135) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileChanged(ScanningAppProvider.java:77) 
    at org.eclipse.jetty.util.Scanner.reportChange(Scanner.java:490) 
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:355) 
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:306) 
    at org.eclipse.jetty.util.Scanner$1.run(Scanner.java:258) 
    at java.util.TimerThread.mainLoop(Timer.java:512) 
    at java.util.TimerThread.run(Timer.java:462) 

Semblait passer par tous les binaires de la jetée et se plaignent de chaque fichier de classe.

Quand j'ai essayé de déployer à 6.1.24 j'ai eu

org.mortbay.util.MultiException[java.lang.NoClassDefFoundError: org/eclipse/jetty/util/ajax/JSON$Source, java.lang.NoClassDefFoundError: org/eclipse/jetty/util/thread/ThreadPool] 
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:656) 
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) 
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) 
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 
    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:224) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.mortbay.start.Main.invokeMain(Main.java:194) 
    at org.mortbay.start.Main.start(Main.java:534) 
    at org.mortbay.start.Main.start(Main.java:441) 
    at org.mortbay.start.Main.main(Main.java:119) 

Mon web.xml ressemble à ceci:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     version="2.5"> 

    <servlet> 
     <servlet-name>cometd</servlet-name> 
     <servlet-class>org.cometd.server.continuation.ContinuationCometdServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>cometd</servlet-name> 
     <url-pattern>/cometd/*</url-pattern> 
    </servlet-mapping> 

    <servlet> 
     <servlet-name>initializer</servlet-name> 
     <servlet-class>uk.co.dubit.nexus.comet.BayeuxInitializer</servlet-class> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 

    <!-- <filter> 
     <filter-name>cross-origin</filter-name> 
     <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>cross-origin</filter-name> 
     <url-pattern>/cometd/*</url-pattern> 
    </filter-mapping> --> 

</web-app> 

Note filtre origine croisée est commentée. La classe ne semblait pas exister quand j'ai essayé de courir sur 6.1.24 (ce qui d'après ce que je comprends est le comportement correct, oui?).

Désolé pour la question noob mais est-ce que quelqu'un sait ce que je fais mal ici?

Cordialement, Tom

Répondre

2

ok semble qu'il y avait quelques problèmes à travailler ici. Premièrement, la version de la jetée que je regroupais dans ma guerre devait changer. Je suis passé à 7.0.2.v20100331. Deuxièmement, je devais changer le descripteur de déploiement

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     version="2.5"> 

    <servlet> 
     <servlet-name>cometd</servlet-name> 
     <servlet-class>org.cometd.server.continuation.ContinuationCometdServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>cometd</servlet-name> 
     <url-pattern>/cometd/*</url-pattern> 
    </servlet-mapping> 

    <servlet> 
     <servlet-name>initializer</servlet-name> 
     <servlet-class>uk.co.dubit.nexus.comet.BayeuxInitializer</servlet-class> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 

    <filter> 
     <filter-name>continuation</filter-name> 
     <filter-class>org.eclipse.jetty.continuation.ContinuationFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>continuation</filter-name> 
     <url-pattern>/cometd/*</url-pattern> 
    </filter-mapping> 

</web-app> 

Et enfin il y a une étape supplémentaire dans le déploiement d'une guerre à la jetée 6.1.24 (qui est la version que je suis le code en cours d'exécution dans la fin), vous devez placer un descripteur XML pour la guerre dans le répertoire contexts/. Mon descripteur ressemblait

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> 
<configure class="org.mortbay.jetty.webapp.WebAppContext"> 
    <Set name="contextPath">/cometd</Set> 
    <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/nexus.war</Set> 
</configure> 

Après que mon servlet était accessible depuis le chemin/cometd figurant dans ce descripteur.