@Path("/myService")
public interface MyService {
@GET
@Path("/hello")
@Produces(MediaType.TEXT_PLAIN)
String sayHello();
@POST
@Path("/add")
@Consumes(MediaType.APPLICATION_JSON)
void addData(Data data);
}
@Component
@Path("/myService")
public class MyServiceImpl implements MyService {
@Override
public String sayHello() {
return "Hello from OSGi!";
}
@Override
public void addData(Data data) {
}
}
@Component
public class Activator implements BundleActivator {
@Reference
private MyService myService;
@Override
public void start(BundleContext bundleContext) throws Exception {
JAXRSServerFactoryBean factory = new JAXRSServerFactoryBean();
factory.setAddress("/rest");
factory.setServiceBeans(Collections.singletonList(myService));
Server server = factory.create();
server.start();
}
@Override
public void stop(BundleContext bundleContext) throws Exception {
}
}