Hi Steve! Welcome to OWB ;)
I didn’t use Jetty for quite a while to be honest. In my personal view Tomcat 8 is really as fast and small as it gets (4MB stripped down) and tc-8.5 and tc-9.0 even provide HTTP2 support. Or course it’s a personal flavour and OWB should work with Jetty and other servlet containers as well. Sadly for injecting into Servlets, Listeners and Filters we would need an even deeper integration. This is chicken-egg problem. With pure servlet functionality we cannot ‚create‘ parts of the servlet container itself. Anyway, there is not much need anymore to do this nor to use JNDI for the lookup. Just use YourBean instance = CDI.current().select(YourBean.class).get(); You can even store away the ‚instance‘ in a member field in your servlet (so you don’t have to look it up for each request). After all it’s just a proxy anyway, so once the container is started it doesn’t change anymore. Probably the best bet is to use the Servlet#init(ServletConfig) method to resolve the proxy and store it in a member field inside the servlet. After all the injection into Servlets, Filters, Listeners, etc is not much different from what this does anyway. On the benefit side: this solution works on each and every Servlet container! If you need this for the EE6 version of OWB (OWB-1.2.x) then plz look at Apache DeltaSpike BeanProvider [1]. Side note: In case you don’t know it yet then take a look at DeltaSpike. It contains a lot of great stuff, e.g. the ConfigResolver stuff, conditional @Exclude, etc LieGrue, strub [1] http://deltaspike.apache.org/documentation/core.html > Am 07.06.2016 um 19:04 schrieb Steve Sobol - Lobos Studios > <[email protected]>: > > Hey all, > > New to CDI - I'm working on switching my JEE webapps from JSF managed beans > to CDI. > > I use Jetty, exclusively, and JSF works fine with Jetty and OWB, but @Inject > in servlets (and presumably elsewhere) does not. > > I started out with JBoss Weld, which ships with Jetty 9, but trying to get > Weld working in my IDE was a nightmare and I gave up. (IntelliJ IDEA Ultimate > 2016.2 if anyone cares, but this morning I upgraded to 2016.3) > > So as an alternative to getting the bundled CDI functionality to work, I > tried OpenWebBeans instead and now I'm good to go, except that I can't use DI > in the servlets I'm creating. > > I have a workaround (query BeanManager through JNDI), so this is not a > life-or-death urgent issue (not even close!) - but it would be nice if I > could get it working. A mailing list search turned up > > http://markmail.org/search/?q=servlet+injection+jetty+list%3Aorg.apache.openwebbeans.user+order%3Adate-backward#query:servlet%20injection%20jetty%20list%3Aorg.apache.openwebbeans.user%20order%3Adate-backward+page:2+mid:gzti4hxxl76lqyhf+state:results > > That thread states that Jetty 8 is buggy and that the OWB team even gave up > on working with Jetty and switched to Tomcat* - but the thread is from 2012, > and Jetty 8 was EOL'd a while ago. > > So my questions are: > > ** What is the current state of @Inject using OWB and Jetty? > ** If it's not working, what would be required to *get* it working? > > Weld can do DI into Servlets and Filters in Jetty 7, 8 or 9, and into Servlet > listeners in 9.1.1 or newer. (according to > https://docs.jboss.org/weld/reference/latest/en-US/html/environments.html#_jetty) > > But I'd much rather use OWB. > > Thanks, > Steve > > * OWB and Tomcat are both ASF projects. Weird that y'all didn't use Tomcat > from the start. > > > -- > Lobos Studios | Phone: 877.919.4WEB | LobosStudios.com | > Facebook.com/LobosStudios | @LobosStudios > Web Development - Mobile Development - Helpdesk/Tech Support - Computer Sales > & Service > Acer Authorized Reseller - Computers, Windows and Android Tablets, Accessories > > Steve Sobol - CEO, Senior Developer and Server Jockey > [email protected]
