2015-10-05 14 views
7

Tôi có câu hỏi về định dạng và cách sử dụng đúng của tệp bean.xml. Trong các dự án của tôi, tôi thường được sử dụng nội dung này cho các tập tin bean.xml của tôi (không khai đậu explizit sử dụng):CDI - định dạng bean.xml chính xác là gì?

<?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> 

này hoạt động tốt trong WildFly 8 và 9. Nhưng tôi có vấn đề triển khai trong GlassFish 4. Trong câu hỏi : Glassfish 4, simple example in CDI fails with WELD-001408 Unsatisfied dependencies Tôi đã viết về một định dạng thay thế:

<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> 

Có một không gian tên khác được sử dụng. Và GlassFish4 dường như quan tâm đến điều đó.

Định dạng đúng của tệp bean.xml trống được sử dụng cho JEE7 là gì?

Trả lời

12

Đúng trống beans.xml có thể hoàn toàn trống rỗng tập tin, thực sự ;-)

Nhưng khi bạn muốn thêm một số nội dung, xin vui lòng nhận thấy rằng hầu hết các không gian tên XML mô tả triển khai đã được cập nhật trong Java EE 7. Đây là chi tiết post describes. Ngoài ra, bean-discovery-mode đã được thêm vào.

BTW: Sample beans.xml mà tôi đang sử dụng ngay bây giờ trông giống như:

<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> 

Bạn có thể nhận thấy việc sử dụng version="1.2" thuộc tính - bạn có thể tự do thiết lập nó để 1.1. Nó chỉ phục vụ như một lời nhắc nhở cho người đọc rằng dự án đang sử dụng CDI 1.2 (thực ra chỉ là một bản phát hành bảo trì của CDI 1.1 Đặc điểm kỹ thuật).