Goffredo,

in jetty-10, configurations are self ordering, as they declare their
dependencies and we do a topological sort on them.  So once jetty-10 is
released, there will be no need for careful user management of
Configurations - just ad the features you want and jetty will order them.

cheers


On 22 September 2017 at 01:53, <[email protected]> wrote:

> Hi Jan,
>
> Yes, the 'correct ordering' worked for all embedded tests, especially for
> the GWT starter project. Not sure if it is possible to do, but would it be
> good to have two webapp.setConfigurations/1?; at the moment
> setConfigurations requires that the Configuration[] list be ordered, so may
> I suggest an additional or replacement setConfigurations called something
> like setOrderedConfigurations/1, where a knowledgeable programmer
> determines the config order. By contrast the current setConfigurations
> could be renamed to setUnorderedConfigurations/1 with Jetty in this case
> providing some underlying code to check and apply elements of the
> Configuration[] list in a sane order. My error was to treat the
> Configuration[] list as effectively unordered, but I was not aware of any
> feedback/warning that my ordering was incorrect. I think it is generally a
> good idea to explicitly indicate whether operations apply to ordered or
> unordered sets (think of sorting a set). Anyway, just a thought.
>
> Thanks for help!
> Goffredo
>
>
> Quoting Jan Bartel <[email protected]>:
>
> The correct ordering of the Configurations is:
>>
>>         "org.eclipse.jetty.webapp.WebInfConfiguration",
>>         "org.eclipse.jetty.webapp.WebXmlConfiguration",
>>         "org.eclipse.jetty.webapp.MetaInfConfiguration",
>>         "org.eclipse.jetty.webapp.FragmentConfiguration",
>>        "org.eclipse.jetty.plus.webapp.EnvConfiguration",
>>        "org.eclipse.jetty.plus.webapp.PlusConfiguration",
>>        "org.eclipse.jetty.annotations.AnnotationConfiguration",
>>        "org.eclipse.jetty.webapp.JettyWebXmlConfiguration"
>>
>> Trying fixing up that order and re-running your tests.
>>
>> If there is still a failure, please attach one of the failing wars, your
>> embedded setup code and classpath and we'll take a look.
>>
>> Jan
>>
>> On 19 September 2017 at 17:42, <[email protected]> wrote:
>>
>> Hi
>>>
>>> Thanks for responses, but no joy. Trying to be experimental, I set up a
>>> single file with configuration as below, to try a number of variants.
>>> Seems
>>> that anything (so to speak) without GWT will work on the embedded Jetty,
>>> so
>>> plain Jersey app works OK embedded (so Annotation scanning is ok), but
>>> app
>>> with GWT and Jersey fails; A plain GWT app without backend server code
>>> works OK also; however the GWT 'Web Application Starter Project' fails in
>>> embedded but runs in Jetty stand alone. The GWT starter project uses
>>> RMI/RPC to manage backend connection, which differs from Jersey REST. All
>>> the .war files were created the same way, project cleaned, GWT compiled,
>>> etc.
>>>
>>> Nothing in the embedded examples seems useful. But since all GWT examples
>>> obviously run fine in SuperDevMode which uses an older version of Jetty
>>> Embedded the matter seems to be some kind of configuration problem.
>>>
>>> Regards
>>> Goffredo
>>>
>>>         /*
>>>          * Correctly order your configurations! This is the default list.
>>>          */
>>>         webapp.setConfigurations(new Configuration[] {
>>>             new WebXmlConfiguration(),   // Processes a WEB-INF/web.xml
>>> file
>>>             new WebInfConfiguration(),   // Extracts war, orders jars and
>>> defines classpath
>>>             new MetaInfConfiguration(),  // Looks in container and webapp
>>> jars for META-INF/resources and META-INF/web-fragment.xml
>>>             new FragmentConfiguration(), //Processes all discovered
>>> META-INF/web-fragment.xml files
>>>             // -- supporting JNDI
>>>             new EnvConfiguration(),     // Creates java:comp/env for the
>>> webapp, applies a WEB-INF/jetty-env.xml file
>>>             new PlusConfiguration(),    // Processes JNDI related aspects
>>> of WEB-INF/web.xml and hooks up naming entries
>>>             // -- supporting ANNOTATIONS
>>>             new AnnotationConfiguration(), // Scan container and web app
>>> jars looking for @WebServlet, @WebFilter, @WebListener etc
>>>             new JettyWebXmlConfiguration() });
>>>
>>>         /*
>>>          * Set app .war file as needed
>>>          *
>>>          */
>>>         webapp.setContextPath("/");
>>>         File warFile = new File(
>>>                 // Plain Jersey Application
>>>                 // "src/webapps/jersey-getting-started.war"); // OK
>>> embedded OK stand alone
>>>
>>>                 // GWT + GWTResty + Jersey
>>>                 // "src/webapps/gwt_jersey_gwtresty.war");    // FAILS
>>> embedded OK stand alone
>>>
>>>                 // GWT + Jersey (Plain GWT Interface no RMI/RPC calls,
>>> backend Jersey server only)
>>>                 // "src/webapps/gwt_jersey_test.war");        // FAILS
>>> embedded OK stand alone
>>>
>>>                 // Plain GWT Application without Server code
>>>                 // "src/webapps/architecture2.war");          // OK
>>> embedded OK stand alone
>>>
>>>                 // actual GWT: 'Web Application Starter Project' (which
>>> contains (RMI/RPC) Server code)
>>>                 "src/webapps/gwt_helloworld.war");            // FAILS
>>> embedded OK stand alone
>>>
>>>                 // Plain Jersey Application
>>>                 //"src/webapps/adages2_1.war");               // OK
>>> Embedded
>>>
>>>                 // Plain Jersey Application
>>>                 //"src/webapps/predictions3.war");            // OK
>>> Embedded
>>>
>>>           webapp.setWar(warFile.getAbsolutePath());
>>>
>>>
>>> Plain Jersey Application (No GWT)
>>> Embedded: This works OK:
>>> =====================================================================
>>> When starting: "src/webapps/jersey-getting-started.war");
>>> This is some printout:
>>>  |   |   |   += org.eclipse.jetty.servlet.ServletHandler@1fd91c9 -
>>> STARTED
>>>   <stuff snipped>
>>>  |   |   |   |   +- [/]=>default
>>>  |   |   |   |   +- [*.jsp, *.jspf, *.jspx, *.xsp, *.JSP, *.JSPF, *.JSPX,
>>> *.XSP]=>jsp
>>>  |   |   |   |   += Jetty_WebSocketUpgradeFilter - STARTED
>>>  |   |   |   |   |   +- contextAttributeKey=org.eclips
>>> e.jetty.websocket.server.WebSocketUpgradeFilter
>>>  |   |   |   |   |   +- configuration=org.eclipse.jett
>>> y.websocket.server.NativeWebSocketConfiguration@14658f7
>>>  |   |   |   |   +- [/*]/[]==1=>Jetty_WebSocketUpgradeFilter
>>>  |   |   |   |   += org.eclipse.jetty.servlet.ListenerHolder@8eee0f -
>>> STARTED
>>>  |   |   |   |   += com.armida.jersey.jersey_getti
>>> ng_started.MyResourceConfig@647d15ac==org.glassfish.
>>> jersey.servlet.ServletContainer,jsp=null,order=1,inst=true - STARTED
>>>  |   |   |   |   +- [/webapi/*]=>com.armida.jersey
>>> .jersey_getting_started.MyResourceConfig
>>>                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  OK
>>>
>>>
>>> Plain GWT Interface no RMI/RPC calls, backend Jersey server only
>>> Embedded: This FAILS:
>>> =====================================================================
>>> When starting: "src/webapps/gwt_jersey_test.war");
>>> This is some printout:
>>>  |   |   |   += org.eclipse.jetty.servlet.ServletHandler@15c6049 -
>>> STARTED
>>>  <stuff snipped>
>>>  |   |   |   |   +- [/]=>default
>>>  |   |   |   |   +- [*.jsp, *.jspf, *.jspx, *.xsp, *.JSP, *.JSPF, *.JSPX,
>>> *.XSP]=>jsp
>>>  |   |   |   |   += Jetty_WebSocketUpgradeFilter - STARTED
>>>  |   |   |   |   |   +- contextAttributeKey=org.eclips
>>> e.jetty.websocket.server.WebSocketUpgradeFilter
>>>  |   |   |   |   |   +- configuration=org.eclipse.jett
>>> y.websocket.server.NativeWebSocketConfiguration@3118b0
>>>  |   |   |   |   +- [/*]/[]==1=>Jetty_WebSocketUpgradeFilter
>>>  |   |   |   |   += org.eclipse.jetty.servlet.ListenerHolder@5d7657 -
>>> STARTED
>>>                  <jersey stuff not here> ????????????????????? FAIL
>>>
>>>
>>>
>>>
>>> in reply to:
>>> ------------
>>>
>>>
>>> Quoting Joakim Erdfelt <[email protected]>:
>>>
>>> Did you configure your embedded-jetty to use the appropriate webapp
>>>
>>>> configurations?
>>>> Of particular interest is the AnnotationConfiguration (which scans
>>>> bytecode
>>>> and looks for annotated classes).
>>>>
>>>> Joakim Erdfelt / [email protected]
>>>>
>>>> On Mon, Sep 18, 2017 at 7:08 AM, <[email protected]> wrote:
>>>>
>>>> Hi,
>>>>
>>>>>
>>>>> Hoping someone can help with a problem I have not been able to solve.
>>>>> I have a simple GWT application, with a simple Jersey REST server. I am
>>>>> able to compile and succesfully run it on Eclipse IDE using SuperDev
>>>>> Mode.
>>>>> I am able to created a .war file from my project, and drop this .war
>>>>> file
>>>>> into an unmodified stand-alone Jetty (9.4.6) webapps folder, and again
>>>>> it
>>>>> runs as expected. The .war File Size is 95981747 bytes containing the
>>>>> appropriate GWT and Jersey jars (if that is relevant).
>>>>>
>>>>> But when I try to load the .war file into an Embedded Jetty (9.4.2),
>>>>> the
>>>>> server-side programs will not work at all, as if the server side
>>>>> programs
>>>>> did not exist. The welcome page is however available, just that it
>>>>> appears
>>>>> there is no backend. (I am able as well to write and run simple Jersey
>>>>> REST
>>>>> applications with no dependency on GWT; also able to run simple GWT
>>>>> apps
>>>>> in
>>>>> embedded mode.) GWT's JettyLauncher.java (which starts embedded Jetty
>>>>> in
>>>>> Dev Mode) provides no clue. From my reading of the documentation a .war
>>>>> file should just work with embedded Jetty. I can't understand why one
>>>>> .war
>>>>> file works in embedded Jetty and another fails, or why a .war file
>>>>> works
>>>>> in
>>>>> Jetty stand-alone mode, but seriously fails in Jetty embedded mode.
>>>>> Maybe
>>>>> it's a configuration problem? If so is there a document that shows how
>>>>> to
>>>>> configure embedded Jetty to work like the stand-alone Jetty?
>>>>>
>>>>> Regards
>>>>> Goffredo
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> jetty-users mailing list
>>>>> [email protected]
>>>>> To change your delivery options, retrieve your password, or unsubscribe
>>>>> from this list, visit
>>>>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>>>>>
>>>>>
>>>>>
>>> _______________________________________________
>>> jetty-users mailing list
>>> [email protected]
>>> To change your delivery options, retrieve your password, or unsubscribe
>>> from this list, visit
>>> https://dev.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 change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>



-- 
Greg Wilkins <[email protected]> CTO http://webtide.com
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to