Ok I figured it out. For the example the AlpnOpenListener protocol was set http2. For Chrome when used it is h2-14. The AlpnOpenListener checks to match the versions of the browser protocols to the one AlpnOpenListener is setup with. If no match is found then it logs the error I listed. Interesting enough Firefox when used lists a wide range of http/2 drafts and h2 which I think means the final draft. As long as the listener if used in Wildfly uses h2 and h2-14 protocols then wildfly will work.
I do not know why the http2server example does not appear to use the http/2 protocol and it may be related to default handler beinng straight https 1.1.
in your code you only enable SPDY and not also HTTP"
openListener = new Http2OpenListener(pool, OptionMap.create(UndertowOptions.ENABLE_SPDY, true));
you should have something like
openListener = new Http2OpenListener(pool, OptionMap.create(UndertowOptions.ENABLE_SPDY, true, UndertowOptions.ENABLE_HTTP2, true));
Sorry Red Hat limits how quickly you can create or respond to posts so trying again to respond.
The code I listed came from the undertow git http2 tests and was meant to only test http/2 and not http. I wanted something I hoped worked for http/2 as a starting point for http/2.
Understanding the http listeners and their order is I believe important to me since the browsers advertise all the protocols maybe as part of the negotiation and order of handling is important. I will look into that tonight to get a better handle on priority.
What I showed is not Wildfly but xnio server. So even though it worked I need to find something in the Undertow examples or tests that creates both in such a way I can control the order they are used. I found Swarm but it is too new and untried for even me but it looks like it is trying to address what I am talking about.
So what I am looking for is:
create http/2 listener/handler then add to undertow server
create http listener/handler then add to Undertow server