2015-10-05 38 views
7

Mam pytanie dotyczące poprawnego formatu i użycia pliku bean.xml. W moich projektach typowo wykorzystywane tę zawartość do moich plików bean.xml (deklaracja nie explizit fasola używany):CDI - jaki jest prawidłowy format bean.xml?

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation=" 
     http://java.sun.com/xml/ns/javaee 
     http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> 
</beans> 

Działa to dobrze w JBoss Application Server 8 i 9. Ale mam problemy z wdrażaniem w GlassFish 4. W pytaniu : Glassfish 4, simple example in CDI fails with WELD-001408 Unsatisfied dependencies Napisałem o alternatywnym formacie:

<beans 
    xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
        http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" 
      bean-discovery-mode="all"> 
</beans> 

Używano różnych przestrzeni nazw. I GlassFish4 wydaje się tym przejmować.

Jaki jest prawidłowy format pustego pliku bean.xml Plik używany w JEE7?

Odpowiedz

12

Prawidłowe pusty beans.xml może być całkowicie pustyplik, naprawdę ;-)

Ale jeśli chcesz dodać jakąś treść, proszę zauważyć, że większość nazw XML deskryptora wdrażania zostały zaktualizowane w Java EE 7. Ten post describes szczegóły. Dodano również bean-discovery-mode.

BTW: Próbka beans.xml którego używam teraz wygląda:

<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" 
     version="1.2" bean-discovery-mode="annotated"> 

    <!-- some content --> 
</beans> 

Można zauważyć użycie atrybutu version="1.2" - można dowolnie ustawić go 1.1. Przypomina to czytelnikowi, że projekt korzysta z CDI 1.2 (który w rzeczywistości jest tylko Konserwacja wydanie z Specyfikacji CDI 1.1).