Я пытаюсь использовать Jetty и RESTEasy для разработки API. Все работает до тех пор, пока я не попытаюсь внедрить в свой сервис RESTEasy, а затем внедрение зависимостей, похоже, завершится неудачно. Ниже то, что я имею до сих пор.
pom.xml
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-servlet-initializer</artifactId>
<version>3.1.4.Final</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.14.v20181114</version>
</plugin>
</plugins>
</build>
RestEasyApplication
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/")
public class RestEasyApplication extends Application {}
RestEasyService
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("restEasy")
public class RestEasyService {
@Inject
private InjectedService service;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getMessage() {
// If I replace this with just a hardcoded string return, it works fine.
return service.getMessage();
}
}
InjectedService
public interface InjectedService {
String getMessage();
}
InjectedServiceImpl
public class InjectedServiceImpl implements InjectedService {
public String getMessage() {
return "Hello Universe";
}
}
Мое идеальное решение: NOT добавить что-нибудь к web.xml
или RestEasyApplication
, так как они генерируются инструментом генерации кода, поэтому они могут быть перезаписаны или должны управляться вручную.