2010-06-17 27 views
5

Tôi có một servlet jython như một phần của một ứng dụng lớn chạy trong tomcat5. Tôi đã thử nghiệm một vài lớp Spring Framework và tạo các đối tượng trong servlet Jython. Khi tôi cố gắng tạo ra các đối tượng của các lớp trong ứng dụng, tôi bắt gặp một thông báo Ngoại lệ "Không thấy các hàm tạo hiển thị cho lớp". Những lớp học java làm có một lớp nhà xây dựng công cộng, chẳng hạn như:Jython nói "Không có nhà thầu có thể nhìn thấy cho lớp học"

public SchoolImpl() { }

tôi có thể tạo các đối tượng trong python:

from com.dc.sports.entity import SchoolImpl

...

school = SchoolImpl()

gì am Tôi làm sai?

+1

Is 'SchoolImpl' là gói riêng tư hoặc lớp công khai? – doublep

+0

Ahh, có vẻ như nó là một gói riêng tư. Cảm ơn – Clutch

+0

+1 cho Ahh :-) – Blauohr

Trả lời

3

doublep/cluch trả lời câu hỏi :-) trong các bình luận

chỉ thêm một ít thông tin:

Từ FAQ Jython:

3.3 Tại sao tôi không thể thực hiện một 'bảo vệ phương pháp cá thể Java 'hoặc' riêng tư 'hoặc truy cập thuộc tính' được bảo vệ 'hoặc' riêng tư 'trong gói Java?

Theo mặc định, như trong Java, các phương pháp này được bảo vệ khỏi truy cập từ bên ngoài. Có thể bật tất cả các trường và phương thức Java bằng cài đặt đăng ký python.security.respectJavaAccessibility:

# Setting this to false will allow Jython to provide access to 
# non-public fields, methods, and constructors of Java objects. 
python.security.respectJavaAccessibility = false 
+1

để xem "đăng ký" là gì: http://www.jython.org/archive/21/docs/registry.html Tôi không chắc liệu nó có tồn tại hay không 2.5. – n611x007

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