2013-06-13 29 views
9

Tôi đang sử dụng GAE 1.8.1 và tôi đã gặp sự cố với Objectify với new scattered ID system. Ít nhất tôi nghĩ đó là Objectify, tôi không chắc chắn (Sử dụng Objectify 4 RC1). Tôi nhận được điều này ..Cách chỉ định ID gia tăng kế thừa bằng Java

Caused by: java.lang.IllegalArgumentException: id cannot be zero 
    at com.google.appengine.api.datastore.KeyFactory.createKey(KeyFactory.java:52) 
    at com.google.appengine.api.datastore.KeyFactory.createKey(KeyFactory.java:47) 
    at com.googlecode.objectify.Key.<init>(Key.java:91) 
    at com.googlecode.objectify.Key.create(Key.java:39) 
    at com.googlecode.objectify.impl.cmd.LoadTypeImpl.id(LoadTypeImpl.java:77) 

Các bản ghi được đưa vào kho dữ liệu chính xác như chúng có ID, nhưng đây là tìm nạp dữ liệu.

Vì vậy, tôi phải quay trở lại những gì trước đây trong thời gian này. Nó tuyên bố here mà bạn có thể chỉ định tạo ID cũ với việc sửa đổi auto_id_policy trong appengine-web.xml. Tôi đã thử thêm tệp này vào tệp:

<auto-id-policy>legacy</auto-id-policy> 

Nhưng nó không hoạt động hoặc ít nhất nó có thể hoạt động nếu XSD hợp lệ hóa để hỗ trợ thẻ này. Bạn không thể triển khai ứng dụng vì điều này.

+0

Xin chào, tôi đã gặp phải sự cố tương tự như bạn đã thực hiện đối với một dự án bị giữ nguyên trong vài tháng. Bạn chỉ cần cập nhật SDK ứng dụng của bạn từ phiên bản 1.8.1 lên phiên bản mới hơn. Tôi có thể xác nhận rằng trên dự án của tôi, trong đó có 1.8.1.1 cho App Engine SDK của nó, XML của bạn xác nhận thành công. –

Trả lời

1

chúng tôi biết sự cố này và đang khắc phục.

+0

Sửa lỗi ngoại lệ hoặc sửa lỗi cho thẻ XSD bị thiếu? –

+1

bất kỳ tin tức nào về điều này? Trình khởi chạy GoogleAppEngine đang nói lỗi: đối số --auto_id_policy: lựa chọn không hợp lệ: 'cũ' (chọn từ 'tuần tự', 'phân tán') khi gọi nó bằng --auto_id_policy = legacy – skurt

+0

Tham chiếu trong tương lai cho những người gặp phải vấn đề này: Cập nhật Phiên bản SDK của Máy ứng dụng từ 1.8.1, sự cố này đã được khắc phục kể từ 1.8.1.1 trở đi. –

0

Sự cố có vẻ như bạn đang chuyển đến số 0 để tải(). Id(). Tôi không nghĩ rằng điều này có liên quan đến id phân tán hoặc Objectify.

+0

Tôi cũng đã nghĩ như vậy. Nhưng kể từ khi chuyển sang 1.8.1 nó thực hiện điều này. Các phiên bản trước hoạt động tốt. Nếu tôi đã đi qua trong một 0 như là một lỗi trong mã của tôi sau đó nó chắc chắn sẽ thất bại cho mỗi phiên bản. Bạn có đồng ý không? –

+0

Nếu không thấy mã của bạn gọi hàm load(). Id(), thật khó để nói. – stickfigure

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