package my.package;
import org.apache.johnzon.mapper.Mapper;
import org.apache.johnzon.mapper.MapperBuilder;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.jaxrs.whiteboard.propertytypes.JSONRequired;
import org.osgi.service.jaxrs.whiteboard.propertytypes.JaxrsResource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.ws.rs.GET;
import javax.ws.rs.OPTIONS;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import javax.ws.rs.core.Response.Status;
import my.package.MyDao;
import my.package.MyDto;
@Component(service=MyResource.class)
@JaxrsResource
@Path("/myresourcepath")
//@Produces(MediaType.APPLICATION_JSON)
@JSONRequired
public class MyResource {
@Reference
private MyDao dao;
@Activate
void activate(Map<String, Object> props) {
System.out.println("MyResource activated.");
}
@GET
@Path("/items")
@Produces(MediaType.APPLICATION_JSON)
public List<MyDto> getItems() {
return dao.list();
}
@GET
@Path("/itemlist")
@Produces(MediaType.APPLICATION_JSON)
public Response getItemList() throws Exception {
try {
List<MyDto> result = dao.list();
Mapper mapper = new MapperBuilder().build();
String json = mapper.writeArrayAsString(result);
ResponseBuilder builder = Response.ok(json);
return builder.build();
}
catch(Exception ex) {
System.out.println(ex.getMessage());
return Response.status(Status.INTERNAL_SERVER_ERROR).build();