I have the jsp + jaxrs jersey 2.33 using jetty 9. https://lit-taiga-52898.herokuapp.com/
If you guys decide to have a working example using jetty 11 and jersey 3.0.1 on github please send me a link. I think there are quite a few bugs need fixing for that to happen. Even with jetty 9 there were compatibility issues amongst jetty 9 variations. On Mon, 5 Apr 2021, 06:31 Som Lima, <somplastic...@gmail.com> wrote: > This is the pom.xml > > > <project xmlns="http://maven.apache.org/POM/4.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/maven-v4_0_0.xsd"> > > <modelVersion>4.0.0</modelVersion> > > <groupId>com.example</groupId> > <artifactId>heroku-webapp</artifactId> > <packaging>war</packaging> > <version>1.0-SNAPSHOT</version> > <name>heroku-webapp</name> > > <properties> > <jersey.version>3.0.1</jersey.version> > <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> > <jetty.version>11.0.1</jetty.version> > <failOnMissingWebXml>false</failOnMissingWebXml> > </properties> > > <dependencyManagement> > <dependencies> > <dependency> > <groupId>org.glassfish.jersey</groupId> > <artifactId>jersey-bom</artifactId> > <version>${jersey.version}</version> > <type>pom</type> > <scope>import</scope> > </dependency> > </dependencies> > </dependencyManagement> > > <dependencies> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-annotations</artifactId> > <version>11.0.2</version> > </dependency> > > <dependency> > <groupId>org.glassfish.jersey.containers</groupId> > <artifactId>jersey-container-servlet</artifactId> > </dependency> > <dependency> > <groupId>org.glassfish.jersey.inject</groupId> > <artifactId>jersey-hk2</artifactId> > </dependency> > > <!-- uncomment this to get JSON support --> > <dependency> > <groupId>org.glassfish.jersey.media</groupId> > <artifactId>jersey-media-json-binding</artifactId> > </dependency> > <dependency> > <groupId>org.glassfish.jaxb</groupId> > <artifactId>jaxb-runtime</artifactId> > <version>3.0.0</version> > </dependency> > > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-servlet</artifactId> > <version>${jetty.version}</version> > <scope>provided</scope> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-webapp</artifactId> > <version>${jetty.version}</version> > <scope>provided</scope> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>apache-jsp</artifactId> > <version>11.0.2</version> > </dependency> > > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>apache-jstl</artifactId> > <version>11.0.0</version> > </dependency> > > <dependency> > <groupId>org.slf4j</groupId> > <artifactId>slf4j-simple</artifactId> > <version>2.0.0-alpha0</version> > </dependency> > > <dependency> > <groupId>org.glassfish.jersey.test-framework.providers</groupId> > <artifactId>jersey-test-framework-provider-bundle</artifactId> > <type>pom</type> > <scope>test</scope> > </dependency> > </dependencies> > > <build> > <finalName>heroku-webapp</finalName> > <plugins> > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-compiler-plugin</artifactId> > <version>3.8.0</version> > <inherited>true</inherited> > <configuration> > <source>11</source> > <target>11</target> > </configuration> > </plugin> > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-dependency-plugin</artifactId> > <version>2.8</version> > <executions> > <execution> > <id>copy-dependencies</id> > <phase>package</phase> > <goals> > <goal>copy-dependencies</goal> > </goals> > <configuration> > <includeScope>compile</includeScope> > </configuration> > </execution> > </executions> > </plugin> > <plugin> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-maven-plugin</artifactId> > <version>${jetty.version}</version> > <configuration> > <contextPath>/</contextPath> > <webApp> > <contextPath>/</contextPath> > <webInfIncludeJarPattern>.*/.*jersey-[^/]\.jar$</webInfIncludeJarPattern> > </webApp> > <war>${project.build.directory}/${project.build.finalName}.war</war> > </configuration> > </plugin> > </plugins> > </build> > > </project> > <http://www.backbutton.co.uk/> > > > > On Mon, 5 Apr 2021, 06:29 Som Lima, <somplastic...@gmail.com> wrote: > >> A reminder this is the Main function I am working with for jetty 11. >> >> >> import org.eclipse.jetty.server.Server; >> import org.eclipse.jetty.webapp.WebAppContext; >> >> /** >> * This class launches the web application in an embedded Jetty >> container. >> * This is the entry point to your application. The Java >> * command that is used for launching should fire this main method. >> */ >> >> public class Main { >> >> public static void main(String[] args) throws Exception{ >> // The port that we should run on can be set into an environment >> variable >> // Look for that variable and default to 8080 if it isn't there. >> String webPort = System.getenv("PORT"); >> if (webPort == null || webPort.isEmpty()) { >> webPort = "8080"; >> } >> >> final Server server = new Server(Integer.valueOf(webPort)); >> final WebAppContext root = new WebAppContext(); >> >> root.setContextPath("/"); >> root.setParentLoaderPriority(true); >> >> final String webappDirLocation = "src/main/webapp/"; >> root.setDescriptor(webappDirLocation + "/WEB-INF/web.xml"); >> root.setResourceBase(webappDirLocation); >> >> server.setHandler(root); >> >> server.start(); >> server.join(); >> } >> } >> <http://www.backbutton.co.uk/> >> >> >> On Mon, 5 Apr 2021, 01:31 Som Lima, <somplastic...@gmail.com> wrote: >> >>> Thank you I also agree that is the correct jetty reponse. >>> >>> I am using embedded jetty 11. >>> Using webAppContext for configuration. >>> we also have agreed that >>> " in jetty 11 there is indeed no ClassList, so that part is "broken". >>> ". >>> >>> What other method of configuration I have available for adding >>> features as and when I need them >>> to the embedded jetty 11 org.eclipse.jetty.server.Server object apart >>> from using ServletContextHandler ? >>> >>> Please send me link showing the instructions. >>> >>> >>> >>> >>> >>> On Sun, 4 Apr 2021, 23:23 Greg Wilkins, <gr...@webtide.com> wrote: >>> >>>> Som, >>>> >>>> Without a web.xml, the Jersey servlet is not setup to handle requests. >>>> >>>> Without Jersey, there is nothing in Jetty to map any request to >>>> MyResource. >>>> >>>> Unless there is something annotated or in a discovered webfragment, >>>> then Jetty has no handler for that request and 404 is the correct response. >>>> >>>> regards >>>> >>>> >>>> >>>> On Mon, 5 Apr 2021 at 00:10, Som Lima <somplastic...@gmail.com> wrote: >>>> >>>>> Let me put it another way. >>>>> If I remove web.xml why does the following code give me 404 in jetty >>>>> 11 ? >>>>> >>>>> >>>>> 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!"; >>>>> } >>>>> } >>>>> >>>>> On Sun, 4 Apr 2021, 15:03 Joakim Erdfelt, <joa...@webtide.com> wrote: >>>>> >>>>>> <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 >>>>>> >>>>> _______________________________________________ >>>>> jetty-users mailing list >>>>> jetty-users@eclipse.org >>>>> To unsubscribe from this list, visit >>>>> https://www.eclipse.org/mailman/listinfo/jetty-users >>>>> >>>> >>>> >>>> -- >>>> Greg Wilkins <gr...@webtide.com> CTO http://webtide.com >>>> _______________________________________________ >>>> 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