tôi nhận được lỗi Không thể định vị NamespaceHandler khi sử dụng context:annotation-config
đang chạy (java -jar) một jar được tập hợp bởi maven-assembly-plugin và chứa dự án của tôi cũng như tất cả các phần phụ thuộc của nó.
Như những người khác tại forum.springsource.org chủ đề (tin nhắn #7/8) Như đã phát hiện chính xác ở trên, sự cố xảy ra do các tệp tồn tại trong các lọ khác nhau. META-INF/spring.handlers
Và META-INF/spring.schemas
Bị ghi đè khi plugin maven-assembly- đóng gói lại jar vào một tệp.
Nhìn vào nội dung của hai tệp spring-*.jar, bạn có thể thấy rằng các tệp này nằm ở cùng một vị trí so với đường dẫn lớp
$ jar tf spring-oxm-3.0.3.RELEASE.jar
META-INF/spring.handlers
META-INF/spring.schemas
org/springframework/oxm/GenericMarshaller.class
...
$ jar tf spring-context-3.0.3.RELEASE.jar
META-INF/spring.handlers
META-INF/spring.schemas
org/springframework/context/ApplicationContext.class
Không thể đặt thư mục META-INF vào một gói cụ thể phải không? Nếu vậy, ý tưởng được đề xuất của tôi (hy vọng nó có thể áp dụng được) là đặt META-INF/spring.shemas
Và META-INF/spring.handlers
Các tập tin được đặt trong các gói mà chúng tham chiếu.
$ jar tf spring-oxm-3.0.3.RELEASE.jar
org/springframework/oxm/META-INF/spring.schemas
org/springframework/oxm/META-INF/spring.handlers
org/springframework/oxm/GenericMarshaller.class
...
$ jar tf spring-context-3.0.3.RELEASE.jar
org/springframework/context/META-INF/spring.handlers
org/springframework/context/META-INF/spring.schemas
org/springframework/context/ApplicationContext.class
Bằng cách này, chúng sẽ không xung đột khi được hợp nhất vào một lọ. Bạn nghĩ gì?
Tôi đã cố gắng khắc phục lỗi bằng cách sử dụng plugin shader thay vì plugin trình biên dịch (sai):
org.apache.maven.plugins
Maven-Shade-Plugin
| gói bóng râm tại.seresunit.lecturemanager_connector.App META-INF/spring.handlers META-INF/spring.schemas |
Tôi nghĩ rằng tôi đã tìm thấy giải pháp trên diễn đàn springsource.. Đã lâu rồi tôi mới tra cứu nó.. Không thể nhớ được tác giả. Ngả mũ trước anh ấy dù thế nào đi chăng nữa :p
chúc mừng
Về mùa xuân - ý tưởng tránh ghi đè spring.handlers/spring.schemas khi hợp nhất nhiều phần phụ thuộc của mùa xuân vào một lọ duy nhất, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/5586515/
Tôi là một lập trình viên xuất sắc, rất giỏi!