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

Reply via email to