Tôi đang phát triển một ứng dụng bằng OSGi (nền tảng Equinox) và một trong các gói cần phân tích các tệp XML. Cho đến nay tôi đã thực hiện điều này với SAX (javax.xml.parsers.SAXParserFactory) và tôi muốn lấy SAXParserFactory từ nền tảng này.Sử dụng triển khai phân tích cú pháp XML dưới dạng dịch vụ OSGi
Tôi thấy tiêu chuẩn OSGi cung cấp cho một XMLParserActivator để cho phép triển khai JAXP tự đăng ký (http://www.osgi.org/javadoc/r4v41/org/osgi/util/xml/XMLParserActivator.html), do đó, tôi đoán là có một số gói cung cấp SAXParserFactory như một dịch vụ.
Tuy nhiên, tôi không thể tìm ra gói nào sẽ thêm làm phụ thuộc để tìm dịch vụ cung cấp SAXParserFactory. Tôi cố gắng để lấy một tài liệu tham khảo phục vụ sử dụng
context.getServiceReferences(SAXParserFactory.class.getName(), "(&(parser.namespaceAware=true)(parser.validating=true))")
Cho rằng XML phân tích cú pháp là một điều khá phổ biến để làm, tôi cho rằng có những triển khai có sẵn, hoặc các phương tiện khác để có được một dịch vụ phân tích cú pháp XML từ nền tảng này.
Mọi trợ giúp sẽ rất được hoan nghênh!
Hi, Tôi không tự tin với OSGi nhưng tại sao không sử dụng ngăn xếp XML kèm với JRE? – ATorras
Xin chào, có, nhưng cơ chế trình nạp lớp OSGi khác - và do đó gọi SAXParserFactory.newInstance() có thể mang lại các vấn đề, vì cơ chế trình tải JAXP hy vọng sẽ tìm thấy trình phân tích cú pháp trong trình nạp lớp của luồng hiện tại và có thể không nhất thiết phải là trường hợp . –