2012-04-07 15 views
2

Kann der CDI-Provider von WebSphere 8 (OpenWebBeans) durch Weld ersetzt werden? Fehlt dies, gibt es eine Möglichkeit, CDI in WebSphere einfach zu deaktivieren?Weld on WebSphere 8

Warum sollte ich das brauchen? Wir haben ein Projekt, das gegen Weld entwickelt wurde, und leider haben wir festgestellt, dass es auf einer Reihe von Weld Idiosynkrasien beruht. Wir sind in der Lage, Weld über org.jboss.weld.environment.servlet.Listener in Tomcat und Jetty erfolgreich zu starten, aber die integrierte CDI-Implementierung von WebSphere scheint zu stören.

+0

Welche Art von Problemen haben Sie gefunden? – LightGuard

+0

@ LightGuard- das Projekt, das wir als eine Art Leitfaden verwenden (https://www.42lines.net/2011/11/29/leveraging-conversations) platziert EntityManagers im Konversationsbereich, was technisch eine Verletzung von CDI ist, da sie nicht serialisierbar sind. Funktioniert gut in Weld, funktioniert aber nicht in OpenWebBeans. –

+0

Wie erhalten Sie die EntityManager-Objekte? Ich hätte erwartet, dass der containergesteuerte EntityManager serialisierbar wäre. –

Antwort

3

Nein, es ist nicht möglich, CDI in WebSphere Application Server zu ersetzen oder zu inaktivieren. Mein einziger (unbefriedigender) Vorschlag ist, Ihren Code zu überarbeiten, um die Eigenheiten zu vermeiden.