Веб-сервис на Джерси работает нормально с maven jetty: запускается, но возвращает HTTP 404 с помощью jetty-runner.jar

У меня есть один веб-сервис, реализованный в Джерси (без контейнера или чего-либо еще). Когда я прохожу это через maven jetty:run, он работает нормально, но я получаю HTTP ERROR 404, когда я использую java -jar target/dependency/jetty-runner.jar --port 9090 target/*.warЯ проверил подобный пост здесь, но решение не работает для меня. Вот как выглядит мой pom.xml:

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
    <version>6.1.22</version>
    <configuration>
        <connectors>
        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
            <port>9090</port>
            <maxIdleTime>60000</maxIdleTime>
        </connector>
        </connectors>
        <jetty-config>jetty.xml</jetty-config>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals><goal>copy</goal></goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-runner</artifactId>
                        <version>8.1.6.v20120903</version>
                        <destFileName>jetty-runner.jar</destFileName
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

Буду признателен за любую подсказку, чтобы решить мою проблему.

1 ответ

Решение

Проблема была в том, что artifactId моего проекта был XXX. Когда я использовал mvn jetty:run, URL выглядел так: localhost:9090/XXX/path/to/service, Он ничего не возвратил, позвонив: localhost:9090/path/to/service, Однако, когда я изменяю его на java -jar target/dependency/jetty-runner.jar --port 9090 target/*.warURL должен быть localhost:9090/path/to/service а не другой (localhost:9090/XXX/path/to/service).

Я не знаю, что вызвало этот параметр, но, по крайней мере, я могу заставить его работать.

Другие вопросы по тегам