a strange name next to the webapp name shown in eclipse server tab

Viewed 46

My pom is as follow:

 <modelVersion>4.0.0</modelVersion>
  <groupId>net.codejava</groupId>
  <artifactId>EhrmsWs</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

and in eclipse,web project settings, context root is EhrmsWs

but when I add this webapp to wildfly runtime, there is a name MyWebsite-0.0.1-SNAPSHOT.war

  1. where does this name come from and what does it represents?

enter image description here

  1. my context root is still http://127.0.0.1:8080/EhrmsWs ?

  2. the application is a simple web service example, I access using postman, request is http://127.0.0.1:8080/EhrmsWs/rest/products/ but it returns 404 - Not Found, why?

the web.xml setting is as follow:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>EhrmsWs</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <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>net.codejava.ws</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
</web-app>

the service class is as follow:

package net.codejava.ws;

import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/products")
public class ProductResource {
    private ProductDAO dao = ProductDAO.getInstance();
    
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response list() {
        List<Product> listProducts = dao.listAll();
         
        if (listProducts.isEmpty()) {
            return Response.noContent().build();
        }
         
        return Response.ok(listProducts).build();
    }
    //.....
}

[Edit on 20220816]

Now the request http://localhost:8080/EhrmsWs/rest/products can pass to resource ProductResource.java, but I write a similar resource TrainingHist.java with similar method as follow:

package net.codejava.ws;

import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/trainingHist")
public class TrainingHistResource {
    private TrainingHistDAO dao = TrainingHistDAO.getInstance();
    
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response list() {
        List<TrainingHist> listTrainingHists = dao.listAll();
         
        if (listTrainingHists.isEmpty()) {
            return Response.noContent().build();
        }
         
        return Response.ok(listTrainingHists).build();
    }
}

then I send the get request http://localhost:8080/EhrmsWs/rest/trainingHist

but it returns 404 not found, why?

0 Answers
Related