Maven RESTEasy Jetty с инъекцией зависимостей - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь использовать 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, так как они генерируются инструментом генерации кода, поэтому они могут быть перезаписаны или должны управляться вручную.

...