Sorry you are right. I got confused.
There is a main  class which  came with the archetype. That works when I
ran as java application in eclipse IDE with my hack. I think the main class
is
invoked for unit tests.

So I just ran mvn exec:java I got an error because I don't have a main
class declared in the pom.xml. I have no issue with the error.

I am running the archetype as
mvn jetty:run

I tried adding welcome-file tags  ( see below) in the existing archetype 's
web.xml for index.html to be picked up but I am getting a 404.

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd";>
<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>

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>

On Thu, 25 Mar 2021, 00:15 Jan Bartel, <[email protected]> wrote:

> Now I'm confused. You say you're using mvn jetty:run BUT you have posted a
> java main class where you are configuring and running jetty in embedded
> mode. Which is it?
>
> Using mvn jetty:run will run jetty inside maven, and deploy the webapp
> that is your maven project.  It does not run your main class.
>
> Alternatively, you can write a main class to startup up jetty and deploy
> your webapp. You then need to ensure that all of the required jetty jars
> and other dependencies are on the execution classpath. You'd need to use
> something like the maven exec plugin to run it, or run it manually at the
> command line in the usual java fashion.
>
> On Thu, 25 Mar 2021 at 10:46, Som Lima <[email protected]> wrote:
>
>> I used this archetype.
>>
>> mvn archetype:generate -DarchetypeArtifactId=jersey-heroku-webapp \
>>                 -DarchetypeGroupId=org.glassfish.jersey.archetypes
>> -DinteractiveMode=false \
>>                 -DgroupId=com.example -DartifactId=simple-heroku-webapp
>> -Dpackage=com.example \
>>                 -DarchetypeVersion=3.0.1
>>
>>
>>
>> running   as  mvn jetty:run
>>
>>
>> I made this hack by adding a new class
>> HelloHandler and commenting out the  line server.setHandler(root)
>>  , which has worked so far but it is just a hack in the existing Main
>> class. I was hoping I can just an index.html but seems to be too good to be
>> true.  I guess I will have to rework the existing Main class.
>>
>> //        server.setHandler(root);
>>           server.setHandler(new HelloHandler());
>>
>> public class HelloHandler extends AbstractHandler
>> {
>>     public void handle(String target,Request
>> baseRequest,HttpServletRequest request,HttpServletResponse response)
>>         throws IOException, ServletException
>>     {
>>         response.setContentType("text/html;charset=utf-8");
>>         response.setStatus(HttpServletResponse.SC_OK);
>>         baseRequest.setHandled(true);
>>         response.getWriter().println("<h1>Hello World</h1>");
>>     }
>> }
>>
>>
>> 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("/");
>>         // Parent loader priority is a class loader setting that Jetty
>> accepts.
>>         // By default Jetty will behave like most web containers in that
>> it will
>>         // allow your application to replace non-server libraries that
>> are part of the
>>         // container. Setting parent loader priority to true changes this
>> behaviour.
>>         // Read more here:
>> http://wiki.eclipse.org/Jetty/Reference/Jetty_Classloading
>>         root.setParentLoaderPriority(true);
>>
>>         final String webappDirLocation = "src/main/webapp/";
>>         root.setDescriptor(webappDirLocation + "/WEB-INF/web.xml");
>>         root.setResourceBase(webappDirLocation);
>>
>> //        server.setHandler(root);
>>           server.setHandler(new HelloHandler());
>>         server.start();
>>         server.join();
>>     }
>> }
>>
>>
>>
>>
>>
>>
>>
>> On Wed, 24 Mar 2021, 23:13 Jan Bartel, <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> How are you running jetty? Are you running in the
>>> distribution/embedded/maven plugin? Do you have jsp and it's dependencies
>>> enabled?
>>>
>>> Making a very simple webapp that is a directory that looks like:
>>>
>>> /test
>>>   index.jsp
>>>
>>> deploys and runs just fine on the jetty-11 distro, so there must be
>>> something else going on with your setup.
>>>
>>> Firstly, I would make sure you're using the latest full release version
>>> of jetty-11, which is 11.0.1. Then build up from a simple webapp like the
>>> one above gradually adding more of your app in until you can see where the
>>> problem lies.
>>>
>>> regards
>>> Jan
>>>
>>> On Thu, 25 Mar 2021 at 09:19, Som Lima <[email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> I am using  working on the heroku  archetype   webapp  for  jersey
>>>> jax-rs
>>>>  section 5.1
>>>>
>>>>
>>>> https://eclipse-ee4j.github.io/jersey.github.io/documentation/latest3x/getting-started.html#deploy-it-on-heroku
>>>>
>>>> It is publishing   jax-rs resources.
>>>>
>>>> https://lit-savannah-55019.herokuapp.com/myresource
>>>>
>>>> The archetype seem to have everything
>>>> to be a webapp also , so I thought I just need to drop jsp in the
>>>> src/main/webapp/index.jsp
>>>>
>>>> Adding welcome-file-list tag and
>>>> welcome-file  tag with index.jsp.
>>>> in the web.xml file.
>>>>
>>>> That didn't do the trick.
>>>>
>>>> I got a 404.
>>>> running jetty  11.0.0.beta3.
>>>>
>>>> Can you please tell me what  more is needed for the index.jsp to be
>>>> published
>>>> .
>>>>
>>>> Regards
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> jetty-users mailing list
>>>> [email protected]
>>>> To unsubscribe from this list, visit
>>>> https://www.eclipse.org/mailman/listinfo/jetty-users
>>>>
>>>
>>>
>>> --
>>> Jan Bartel <[email protected]>
>>> www.webtide.com
>>> *Expert assistance from the creators of Jetty and CometD*
>>>
>>> _______________________________________________
>>> jetty-users mailing list
>>> [email protected]
>>> To unsubscribe from this list, visit
>>> https://www.eclipse.org/mailman/listinfo/jetty-users
>>>
>> _______________________________________________
>> jetty-users mailing list
>> [email protected]
>> To unsubscribe from this list, visit
>> https://www.eclipse.org/mailman/listinfo/jetty-users
>>
>
>
> --
> Jan Bartel <[email protected]>
> www.webtide.com
> *Expert assistance from the creators of Jetty and CometD*
>
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/jetty-users

Reply via email to