I am new to Jersey REST. I follow the tutorial http://javapapers.com/java/restful-web-services-with-java-jax-rs-using-jersey/ . It works well locally on Tomcat 7. But when I deploy it to Openshift, I just got 404 not found.
This is my web.xml
<servlet> <servlet-name>Jersey REST Service</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>com.market.ws</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey REST Service</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
And this is my resource
@Path("/api") public class TicketsResource { // Allows to insert contextual objects into the class, // eg ServletContext, Request, Response, UriInfo @Context UriInfo uriInfo; @Context Request request; // Return the list of todos to the user in the browser // With the browser you can only issue HTTP GET requests\ @Path("/query") @GET @Produces(MediaType.TEXT_XML) public List<Ticket> getTicketsBrowser() { List<Ticket> tickets = new ArrayList<Ticket>(); tickets.addAll(TicketDao.instance.getModel().values()); return tickets; } // Return the list of todos for applications // Default for browser GET @Path("/query") @GET @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) public List<Ticket> getTickets() { List<Ticket> tickets = new ArrayList<Ticket>(); try { tickets.addAll(TicketDao.instance.getModel().values()); } catch(Exception e) { e.printStackTrace(); } return tickets; } }
I am using http: // localhost: 8080 / myproject / api / query and it works fine. But in openshift I use http://market-domain.rhcloud.com/myproject/api/query or http://market-domain.rhcloud.com/api/query it does not work. I tried using Tomcat 7 or JBoss AS 7, but they both gave me the same error. I did not find errors in the log file. It seems that the resource simply does not exist. I am wondering if my url is wrong or something else? I should be able to request this rest right after deployment, right? Thanks in advance.
source share