Сетевые розетки Jetty 8 - PullRequest
       53

Сетевые розетки Jetty 8

3 голосов
/ 13 октября 2011

Я скачал последнюю версию Jetty 8 Hightide, но не могу заставить работать WebSockets. Я распаковываю дистрибутив, помещаю мой .war-файл в папку webapps и запускаю:

java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/WebSocketServlet

Я убедился, что папка JETTY_HOME / lib содержит файл jetty-websocket.jar и файл класса WebSocketServlet.

У меня было это раньше с релизами вех.

Ответы [ 4 ]

3 голосов
/ 16 октября 2011

Я испытал то же самое, используя jetty-maven-plugin и версию 8.0.3.v20111011. Однако решение было простым. Просто включите jetty-websocket как скомпилированную область видимости (то есть не объявленную область видимости).

Соответствующие разделы pom.xml:

...
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <jetty.version>8.0.3.v20111011</jetty.version>
</properties>
...

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>${jetty.version}</version>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-websocket</artifactId>
        <version>${jetty.version}</version>
    </dependency>
    ...
</dependencies>
3 голосов
/ 14 октября 2011

По некоторым причинам кажется, что веб-сокеты больше не доступны по умолчанию, поэтому в контекстном XML-файле необходим следующий код:

<Set name="extraClasspath"><SystemProperty name="jetty.home" default="."/>/lib/jetty-websocket-<version>.jar</Set>
1 голос
/ 20 марта 2012

Была похожая проблема при запуске Jetty из Eclipse через плагин WST.Вот как я это решил.В каталоге .metadata рабочей области находится контекст приложения: [.metadata рабочей области] /. Plugins / org.eclipse.wst.server.core / [идентификатор конфигурации, такой как 'tmp1'] / contexts / [имя приложения] .xml.Отредактировал его, добавив в тег Configure следующее: <Set name="extraClasspath">[jetty install dir]/lib/jetty-websocket-8.1.2.v20120308.jar;[jetty install dir]/lib/jetty-util-8.1.2.v20120308.jar</Set>

Пришлось жестко закодировать установочный каталог Jetty, поскольку мой Jetty установлен за пределами Eclipse, а выполнение <SystemProperty name="jetty.home" default="."/> разрешается до дома Jetty под .metadata.

1 голос
/ 04 ноября 2011
copy %JETTY_ROOT%\lib\jetty-websocket-<version>.jar %SERVLET_ROOT%\WEB-INF\lib

Казалось, отлично работает для меня!

...