Cancel that, in my first test I must have been running the wrong jar and
not casting to the interface... doh....

good news, it all seems to work(after 2 days of head scratching)

Thanks guys, your interfaces rock even if the spec doesn't!

Tom

On Thu, Jul 30, 2015 at 5:07 PM, Tom Barber <[email protected]> wrote:

> Okay chaps,
>
> After a day of bashing my head against a brick wall and finding out CDI
> won't work with Websockets in Karaf at the mo, I started thinking about
> coming at it from the other way and looking up the bean from the
> ServerEndpoint class.
>
> So I had a google and came across the JNDI naming stuff, which looks
> pretty much what I'm going to have to do, and ran it past jbonofre before
> he flew and he semi validated the idea.
>
> So I added
>
>
> Context context = new InitialContext();
> FileManagerClientImpl myBean = (FileManagerClientImpl)
> context.lookup("fmclient");
>
> To my ServerEndpoint class and it tries to load my service via JNDI but it
> can't cast itself to itself... urgh.
>
> java.lang.ClassCastException:
> com.mytool.filemanager.websocket.FileManagerClientImpl cannot be cast to
> com.mytool.filemanager.websocket.FileManagerClientImpl
>
>
> As the ServerEndpoint isn't managed by blueprint or anything anyone got
> any good ideas as to how to get the valid object?
>
> Code here:
> https://github.com/buggtb/broken-cdi-example/blob/master/src/main/java/com/mytool/filemanager/websocket/FileManagerEndpoint.java#L49
>
> Thanks
>
> Tom
>
>
>
> On Thu, Jul 30, 2015 at 4:05 PM, Tom Barber <[email protected]>
> wrote:
>
>> That said, I do find plenty of posts where they say it does work:
>>
>> For example:
>> http://stackoverflow.com/questions/30332043/inject-an-application-scoped-managed-bean-in-a-websocket
>>
>>
>> On Thu, Jul 30, 2015 at 3:24 PM, Tom Barber <[email protected]>
>> wrote:
>>
>>> Thanks Jens
>>>
>>> When I figured it wasn't CDI at complete fault I went googling and came
>>> across a bunch of similar stuff, which is nuts. If you want to run
>>> websockets and have some system beans, how on earth do you communicate with
>>> them?! :)
>>>
>>> Tom
>>>
>>> On Thu, Jul 30, 2015 at 3:00 PM, Jens J Parappallil <
>>> [email protected]> wrote:
>>>
>>>> Hi Tom,
>>>>
>>>>
>>>>
>>>> You may find this interesting
>>>>
>>>>
>>>>
>>>> https://dzone.com/articles/integrating-cdi-and-websockets
>>>>
>>>>
>>>>
>>>> Regards
>>>>
>>>> Jens
>>>>
>>>>
>>>>
>>>> *From:* Tom Barber [mailto:[email protected]]
>>>> *Sent:* Thursday, July 30, 2015 4:52 PM
>>>> *To:* [email protected]
>>>> *Subject:* Re: PAX CDI not bootstrapping
>>>>
>>>>
>>>>
>>>> You'll cringe when you see this but I've been hacking around a bit to
>>>> see whats broken:
>>>>
>>>>
>>>>
>>>>
>>>> https://github.com/buggtb/broken-cdi-example/blob/master/src/main/java/com/mytool/filemanager/websocket/FileManagerEndpoint.java
>>>>
>>>>
>>>>
>>>> So I made my endpoint multipurpose and it now doubles up as a Servlet.
>>>>
>>>>
>>>>
>>>> Anyway, the get works and responds correctly with my injected CDI
>>>> object, the Web socket endpoint still bombs with an NPE. I'm gonna guess
>>>> its some weird Web Socket classloading issue, but I have absolutely no 
>>>> clue.
>>>>
>>>>
>>>>
>>>> tom
>>>>
>>>>
>>>>
>>>> On Thu, Jul 30, 2015 at 12:03 PM, Tom Barber <[email protected]>
>>>> wrote:
>>>>
>>>> Thanks Andreas,
>>>>
>>>>
>>>>
>>>> That was a hangover from when I tried it without an interface.
>>>>
>>>>
>>>>
>>>> I've checked it and its still not firing.
>>>>
>>>>
>>>>
>>>> Tom
>>>>
>>>>
>>>>
>>>> On Thu, Jul 30, 2015 at 11:54 AM, Andreas Kuhtz <
>>>> [email protected]> wrote:
>>>>
>>>> Hi,
>>>>
>>>> Might be a problem of injecting the impl instead of the interface in
>>>> FileManagerEndpoint:
>>>>
>>>> @OsgiService
>>>> private FileManagerClientImpl fileManagerClient;
>>>>
>>>> .. the same in the setter. Try change to FileManagerClient and see if
>>>> this helps.
>>>>
>>>> Regards,
>>>>
>>>> Andreas
>>>>
>>>>
>>>>
>>>> 2015-07-30 12:48 GMT+02:00 Tom Barber <[email protected]>:
>>>>
>>>> Okay gang,
>>>>
>>>>
>>>>
>>>> I've tried 0.13.0-SNAPSHOT and I still can't for the life of me figure
>>>> out why I don't get my dependency injected.
>>>>
>>>>
>>>>
>>>> Here is a stripped out version:
>>>> https://github.com/buggtb/broken-cdi-example I'm sure its something
>>>> obvious but I can't figure it out.
>>>>
>>>>
>>>>
>>>> Thanks
>>>>
>>>>
>>>>
>>>> Tom
>>>>
>>>>
>>>>
>>>> On Wed, Jul 29, 2015 at 11:47 PM, Tom Barber <[email protected]>
>>>> wrote:
>>>>
>>>> Knowing my coding prowess, i wouldn't say nicely, but i'll give it a
>>>> shot and ask questions another day!
>>>>
>>>>
>>>>
>>>> Thanks Achim!
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Wed, Jul 29, 2015 at 11:42 PM, Achim Nierbeck <
>>>> [email protected]> wrote:
>>>>
>>>> If you switch to use pax-cdi 0.13.0-SNAPSHOT it'll work nicely with
>>>> Pax-Web 4.x and Karaf 4.
>>>>
>>>> I just pushed the changes and deployed the snapshot to the ops4j
>>>> snapshot repo.
>>>>
>>>>
>>>>
>>>> regards, Achim
>>>>
>>>>
>>>>
>>>> 2015-07-30 0:02 GMT+02:00 Tom Barber <[email protected]>:
>>>>
>>>> Boo, actually I resolved that weirdness, that was due to me overriding
>>>> the default classpath, but when it starts I don't get any beans injected
>>>> which gives me a sad face.......
>>>>
>>>>
>>>>
>>>> Tom
>>>>
>>>>
>>>>
>>>> On Wed, Jul 29, 2015 at 10:38 PM, Achim Nierbeck <
>>>> [email protected]> wrote:
>>>>
>>>> Hi Tom,
>>>>
>>>>
>>>>
>>>> I'm not sure what happened to your setup,
>>>>
>>>> but actually that shouldn't be of an issue.
>>>>
>>>> I just tested it and stumbled over another thing.
>>>>
>>>> The latest pax-cdi bundles aren't compatible with Jetty 9.1 and Servlet
>>>> 3.1
>>>>
>>>>
>>>>
>>>> I'm gonna look at it.
>>>>
>>>>
>>>>
>>>> regards, Achim
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> 2015-07-29 18:04 GMT+02:00 Tom Barber <[email protected]>:
>>>>
>>>> Hello chaps
>>>>
>>>>
>>>>
>>>> Running Karaf 4 and PAX CDI I'm running into an issue wiring it all up.
>>>> I have
>>>>
>>>>
>>>>
>>>> Require-Capability: org.ops4j.pax.cdi.extension; filter:="(&(extension=p
>>>>
>>>>  ax-cdi-extension)(version>=0.12)(!(version>=0.13)))",osgi.extender; fil
>>>>
>>>>  ter:="(osgi.extender=pax.cdi)"
>>>>
>>>>
>>>>
>>>> In my Manifest but when it starts it complains of stuff like:
>>>>
>>>>
>>>>
>>>> Caused by: java.lang.ClassNotFoundException:
>>>> WEB-INFes.com.mytool.filemanager.websocket.FileManagerObj not found by
>>>> com.mytool.filemanager-client
>>>>
>>>>
>>>>
>>>> Which is weird, mostly because where does WEB-IFes come from?
>>>>
>>>>
>>>>
>>>> Anyway I can't work it out, where those errors come from and whilst my
>>>> bundle does come up my beans aren't injected, does anyone have a good idea?
>>>>
>>>>
>>>>
>>>> Thanks
>>>>
>>>>
>>>>
>>>> Tom
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>>
>>>> Apache Member
>>>>
>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>> Committer & Project Lead
>>>> blog <http://notizblog.nierbeck.de/>
>>>>
>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>>
>>>>
>>>>
>>>> Software Architect / Project Manager / Scrum Master
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>>
>>>> Apache Member
>>>>
>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>> Committer & Project Lead
>>>> blog <http://notizblog.nierbeck.de/>
>>>>
>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>>
>>>>
>>>>
>>>> Software Architect / Project Manager / Scrum Master
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> DISCLAIMER: "The information in this e-mail and any attachment is
>>>> intended only for the person to whom it is addressed and may contain
>>>> confidential and/or privileged material. If you have received this e-mail
>>>> in error, kindly contact the sender and destroy all copies of the original
>>>> communication. IBS makes no warranty, express or implied, nor guarantees
>>>> the accuracy, adequacy or completeness of the information contained in this
>>>> email or any attachment and is not liable for any errors, defects,
>>>> omissions, viruses or for resultant loss or damage, if any, direct or
>>>> indirect."
>>>>
>>>
>>>
>>
>

Reply via email to