Я пытаюсь настроить CDI/Weld и JAX-RS/Resteasy на Нетти в среде Java SE, но все это я получаю следующее исключение:Ресурсы не найдены с CDI/Weld JAX-RS/Resteasy
javax.ws.rs.NotFoundException: Could not find resource for full path: http://localhost:8000/
Мой проект имеет следующие зависимости:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-netty4</artifactId>
<version>3.0.5.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-cdi</artifactId>
<version>3.0.5.Final</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.0.12.Final</version>
</dependency>
Я поместил файл beans.xml в SRC/главная каталог/ресурсы/META-INF для того, чтобы CDI.
Код для запуска NETTY:
@Singleton
public class App {
private static NettyJaxrsServer netty;
public void printHello(
@Observes ContainerInitialized event,
@Parameters List<String> parameters)
throws Exception {
System.out.println("Starting Netty ...");
ResteasyDeployment deployment = new ResteasyDeployment();
netty = new NettyJaxrsServer();
netty.setDeployment(deployment);
netty.setPort(8000);
netty.setRootResourcePath("");
netty.setSecurityDomain(null);
netty.start();
}
Пример ресурса выглядит следующим образом:
@Path("/hi") // tried "/" too
public class Index {
@GET
public String get() {
return "Hi!";
}
}
Поскольку все это не сработало, я добавил класс приложения:
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/")
public class DemoApplication extends Application {
// empty
}
Но сообщение об ошибке остается неизменным.
Что не хватает? Как настроить Weld и RESTEasy?