2010-01-04 30 views
9

Khi tôi chạy một ứng dụng liên quan đến JMS, tôi đang gặp phải lỗi ngoại lệ sau.Ngoại lệ: Cần chỉ định tên lớp trong thuộc tính môi trường hoặc hệ thống: java.naming.factory.initial

javax.naming.NoInitialContextException: Cần phải xác định tên lớp trong môi trường hoặc hệ thống tài sản, hoặc như là một tham số applet, hoặc trong một tập tin tài nguyên ứng dụng: java.naming.factory.initial

Chúng tôi đang sử dụng Sun Application Máy chủ 9.1

Bất kỳ ý tưởng nào chúng tôi bị thiếu?

Tôi đã cố gắng bổ sung thêm những điều sau đây nhưng kết quả vẫn như nhau

Properties env = new Properties(); 
    env.put("java.naming.factory.initial","com.sun.jndi.cosnaming.CNCtxFactory"); 

    Context ctx = new InitialContext(env); 
+2

Không hoàn toàn trùng lặp: chi tiết cụ thể về thuộc tính nào được đặt cho máy chủ ứng dụng này không được cung cấp ở đó. Ngay từ cái nhìn đầu tiên, người hỏi đang làm những gì được khuyến nghị và phù hợp với các tài liệu của Sun. – djna

+0

Không hoàn toàn trùng lặp. Bạn cần phải đặt tập tin jndi.properties trong classpath. Để biết thêm thông tin, hãy sử dụng liên kết sau. https://cwiki.apache.org/confluence/display/qpid/How+to+Use+JNDI Chỉ định tên nhà máy và tên hàng đợi của bạn. Nên làm việc tốt. –

Trả lời

3

Tôi đang đối mặt với cùng một lỗ hổng khi làm việc với spring & weblogic. Tôi đã giải quyết nó bằng cách đặt hai thuộc tính

System.getProperties(). Put ("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory"); System.getProperties() .đặt ("java.naming.provider.url", "t3: // localhost: 80")

6

Lỗi rất phổ biến có thể là bạn chưa thêm jboss-client.jar ! hoặc bình thay thế nếu sử dụng weblogic.

Các vấn đề liên quan