Веб-сервис на Джерси работает нормально с 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/*.war
URL должен быть localhost:9090/path/to/service
а не другой (localhost:9090/XXX/path/to/service
).
Я не знаю, что вызвало этот параметр, но, по крайней мере, я могу заставить его работать.