Czy MyFaces + CDI mogą być używane w WebLogic 12c?

Próbowałem uruchomić tę konfigurację przez kilka dni, ale nadal nie mam szczęścia. Oto aplikacja testowa, z której korzystałem:

@Named
@RequestScoped
public class Test {

    private String test = "test";
    public String getTest() { return test; }
    public void setTest(String test) { this.test = test; }
}

Na stronie jsf:

<h:outputText value="#{test.test}"/>

Uruchamianie tej próbki bez MyFaces działa poprawnie (renderuje „test” tak jak powinno), ale kiedy wdrażam MyFaces w pliku WAR i wykonuję niezbędną konfigurację w obrębie weblogic.xml, CDI wydaje się przestać działać (lub przynajmniej integracja z JSF i CDI) i nic nie jest wyświetlane w wyjściowym html. Sam MyFaces wydaje się być w porządku.

Moja podstawowa konfiguracja wygląda następująco:

WebLogic Server 12c (12.1.1.0), łatki powinny być aktualne, ponieważ wczoraj pobrałem wersję rozwojową, żeby mieć pewnośćMyFaces-2.1.10, wdrożony w WEB-INF / libsPlik Beans.xml jest na miejscuorg.apache.myfaces.webapp.StartupServletContextListener został zarejestrowany w web.xmlWebLogic jest skonfigurowany do używania MyFaces przy użyciu weblogic.xml

Zawartość Weblogic.xml:

<prefer-application-packages>
    <package-name>javax.faces.*</package-name>
    <package-name>com.sun.faces.*</package-name>
    <package-name>com.bea.faces.*</package-name>
</prefer-application-packages>
<prefer-application-resources>
    <resource-name>javax.faces.*</resource-name>
    <resource-name>com.sun.faces.*</resource-name>
    <resource-name>com.bea.faces.*</resource-name>
    <resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
    <resource-name>META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider</resource-name>
</prefer-application-resources>

Czego się nauczyłem do tej pory:

WL12c jest wyposażony w Weld 1.1.3 jako implementację CDI.Czytałem gdzieś (nie pamiętam, gdzie), że kiedy zdecydujesz się na zmianę implementacji JSF, jesteś odpowiedzialny za integrację JSF / CDI samodzielnie. Czy to prawda (na pewno nie)?

Rzeczy, które dotychczas próbowałem:

Dodaj MyFaces CODI do miksu, mając nadzieję, że w jakiś sposób sklei Weld i MyFaces, ale tak nie było.Zastąp Weld przez OpenWebBeans jako implementację CDI. Wydawało się, że to na początku działało, ale później pojawiło się wiele interesujących wyjątków ClassCast w niektórych wewnętrznych pakietach sun.reflection. To rozwiązanie, którego i tak wolałbym uniknąć.Ręcznie uruchom Spawanie, używając różnych opcji w pliku web.xml i faces-config.xml. Wydaje się, że to powoduje, że Weld zaczyna zalewać dziennik wszystkimi rodzajami komunikatów o błędach. Do pewnego stopnia można je „naprawić”, aktualizując weblogic do nowszej wersji Weld, ale za każdym razem robię to, wpadając na następny błąd. Ponownie wolałbym także unikać tej trasy.

Czy naprawdę trudno jest używać MyFaces na WL12c przy jednoczesnym zachowaniu obsługi CDI, czy po prostu brakuje mi tego oczywistego? Dzięki za pomoc.

questionAnswers(3)

yourAnswerToTheQuestion