2011-01-14 35 views
7

Tôi gặp phải lỗi này khi tôi cố gắng sử dụng một đối tượng JPA do Roo tạo ra.Spring aspectj jar không được cấu hình đúng

quản lý Entity chưa được tiêm (là các khía cạnh mùa xuân JAR cấu hình như một thư viện/khía cạnh AJDT AJC?)

tôi đã theo một số lời khuyên trực tuyến để thêm vào mùa xuân-aspects.jar để đường dẫn aspectj trong Eclipse nhưng tôi vẫn gặp lỗi này. Có ai biết cách giải quyết vấn đề này không?

Môi trường tôi đang sử dụng là Spring 3.0.5, Hibernate 3.6 và JBoss 6.0.0.Final.

+0

Bạn có sử dụng Maven hoặc bạn quản lý các phụ thuộc bằng tay không? – Ralph

+0

Tôi đang sử dụng Maven 2 – newguy

+0

Tôi gặp phải vấn đề tương tự. Tôi đang sử dụng kiến ​​(thay vì pom) để xây dựng dự án, đây có thể là nguyên nhân gốc rễ của vấn đề? –

Trả lời

0

Tôi đã gặp sự cố tương tự này và đã khắc phục sự cố bằng cách thực hiện Công cụ Spring | Bật công cụ Spring Aspects trên dự án của tôi.

Các lớp của tôi được Roo tạo ra và được đẩy vào (tôi đã gặp quá nhiều vấn đề với nó) và tôi đã thêm chúng vào Dự án ứng dụng web Google hoàn toàn mới (do đó, nó sử dụng bố cục ứng dụng của GAE với chiến tranh và không có Maven cho bất cứ điều gì, ít nhất là chưa).

+0

Tôi gặp vấn đề tương tự, và giải pháp này không làm gì cả. –

1

Đến STS ROO console (nhấn chuột phải vào dự án trong STS, sau đó mùa xuân Tools, sau đó mở mùa xuân Roo) Gõ vào dấu nhắc thực hiện sạch (sẽ thực hiện Maven sạch) Sau đó gõ thực hiện nhật thực

Nó nên làm việc!

+0

Khi tôi thử điều này, tôi không thể nhập lời nhắc. Cửa sổ hiển thị "cài đặt Roo 'Roo 1.2.1.RELEASE' trỏ tới đường dẫn không tồn tại 'C: \ SpringSource \ spring-roo-1.2.1.RELEASE \'." –

1

Có vẻ như bạn chưa tiêm Trình quản lý đối tượng.

webapps (nguyên nhân có thể):

  • Bạn không thêm nhà máy quản lý tổ chức để applicationContext.xml bạn

Java Applications:

  • Bạn didn Không thêm nhà máy quản lý tổ chức vào ứng dụng của bạnContext.xml
  • sai ứng dụng khởi tạo (xem dưới đây)

    public class SampleApp { 
        public static void main(String[] args) { 
         SampleApp obj = new SampleApp(); 
    
         // Injecting dependencies into application 
         ConfigurableApplicationContext applicationContext = 
           new ClassPathXmlApplicationContext("<PATH-TO>/applicationContext.xml"); 
         applicationContext.registerShutdownHook(); 
         applicationContext.getBeanFactory().autowireBeanProperties(
           obj, AutowireCapableBeanFactory.AUTOWIRE_NO, false); 
    
         // Do the work 
        } 
    } 
    
+0

Làm thế nào để có thể kiểm tra applicationContext.xml để biết liệu một nhà máy quản lý thực thể đã được thêm chính xác chưa? –

1

Tôi có vấn đề này quá, và tìm thấy câu trả lời ở đây: http://whyjava.wordpress.com/2012/02/13/fixing-exception-entity-manager-has-not-been-injected-is-the-spring-aspects-jar-configured-as-an-ajcajdt-aspects-library/

Trong trường hợp của tôi, tôi cần thiết để tạo ra một tập tin gọi là <classname>_Roo_Configurable.aj với nội dung sau:

privileged aspect <classname>_Roo_Configurable { declare @type: <classname>: @Configurable; }

T ông giải thích lý do tại sao các lớp học hiện tại làm việc nhưng những lớp mới mà tôi đã tạo ra thì không. Tệp _Configurable.aj không (và vẫn không xuất hiện) trong trình thám hiểm gói trong STS.

(Tôi biết câu trả lời này là vô cùng chậm nhưng tôi hy vọng nó sẽ giúp người khác!)

0

Bạn phải tạo kho lưu trữ cho thấy miền.

Trong chạy trên thiết bị đầu cuối, tập lệnh sau

es.

repository jpa --interface ~.dao.MyDomainDAO --entity ~.domain.MyDomain 
Các vấn đề liên quan