<welcome-file-list> is only used when Jetty is in charge of serving static
content.
Or said another way, when there is a request for a resource that doesn't
match a url-pattern that the webapp has specified, then the servlet spec
Default Servlet kicks in and determines static content, welcome-files, etc
...

You have jersey setup with <url-pattern>/*</url-pattern>, which means
Jersey is responsible for 100% of content served.
Jetty is not involved in much with that configuration.

I don't understand this kind of configuration, Jersey usage should be
focused, only on REST api resources, not 100% of content, including static
and default servlet.
I would recommend that you specify jersey on a narrow focused url-pattern,
like `/api/*` and leave the other requests for resources to Jetty (it can
serve static content WAY BETTER than Jersey can).

Joakim Erdfelt / joa...@webtide.com


On Sat, Apr 3, 2021 at 1:55 AM Som Lima <somplastic...@gmail.com> wrote:

>
> IF I have the web.xml then localhost:8080/myresource  works fine
> BUT the index.jsp is not picked  with localhost:8080 or
> http://localhost/index.jsp
> I got an 404.
> URI: /
> STATUS: 404
>
> IF I remove the web.xml then the index.jsp is picked up which is what is
> meant to happen with jetty because it's built in functionality
> assumes an index.jsp file is there and will pick it and publish it.
> But the I get a 404 with localhost:8080/myresource  now.
> I want both index.jsp to be picked up and have the jersey functionality
> localhost:8080/myresource with the web.xml
> but I can only have one or the other.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance";
>         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
> https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd";
>         version="5.0">
>
>     <servlet>
>         <servlet-name>Jersey Web Application</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.example</param-value>
>         </init-param>
>         <load-on-startup>1</load-on-startup>
>     </servlet>
>     <servlet-mapping>
>         <servlet-name>Jersey Web Application</servlet-name>
>         <url-pattern>/*</url-pattern>
>     </servlet-mapping>
>
>    <!-- no effect  -->
>     <welcome-file-list>
>     <welcome-file>index.jsp</welcome-file>
>     </welcome-file-list>
>
> </web-app>
>
>
> import jakarta.ws.rs.GET;
> import jakarta.ws.rs.Path;
> import jakarta.ws.rs.Produces;
> import jakarta.ws.rs.core.MediaType;
>
> /**
>  * Root resource (exposed at "myresource" path)
>  */
> @Path("myresource")
> public class MyResource {
>
>     /**
>      * Method handling HTTP GET requests. The returned object will be sent
>      * to the client as "text/plain" media type.
>      *
>      * @return String that will be returned as a text/plain response.
>      */
>     @GET
>     @Produces(MediaType.TEXT_PLAIN)
>     public String getIt() {
>         return "got, it!";
>     }
> }
>
>
>
> Preferably I also want the Rest API Config to work as well as the
> index.jsp so that I can call the resource localhost:8080/v1/myresource
>
> import jakarta.ws.rs.ApplicationPath;
> import jakarta.ws.rs.core.Application;
>
> @ApplicationPath("v1")
> public class RestAppConfig extends Application{
> }
>
>
> _______________________________________________
> jetty-users mailing list
> jetty-users@eclipse.org
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
jetty-users@eclipse.org
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/jetty-users

Reply via email to