我試圖運行可在這裏http://restlet.org/learn/guide/2.2/introduction/first-steps/first-applicationJava序列問題,上述2.1-M4
我試圖在Android設備上運行的客戶端非常簡單的Restlet示例應用程序,但我得到以下錯誤:
Unable to convert a [application/json,UTF-8] representation into an object of class org.restlet.example.common.Contact
java.io.IOException: Unable to create the Object representation
org.restlet.engine.converter.DefaultConverter.toObject(DefaultConverter.java:291)
org.restlet.service.ConverterService.toObject(ConverterService.java:170)
org.restlet.resource.Resource.toObject(Resource.java:828)
org.restlet.engine.resource.ClientInvocationHandler.invoke(ClientInvocationHandler.java:240)
$Proxy7.retrieve(Native Method)
org.restlet.example.serialisation.android.activity.ContactActivity$2.run(ContactActivity.java:142)
java.lang.Thread.run(Thread.java:1096)
java.lang.IllegalArgumentException: The serialized representation must have this media type: application/x-java-serialized-object or this one: application/x-java-serialized-object+xml
org.restlet.representation.ObjectRepresentation.<init>(ObjectRepresentation.java:204)
org.restlet.representation.ObjectRepresentation.<init>(ObjectRepresentation.java:133)
org.restlet.representation.ObjectRepresentation.<init>(ObjectRepresentation.java:114)
org.restlet.engine.converter.DefaultConverter.toObject(DefaultConverter.java:288)
使這個應用程序工作的唯一方法是使用Restlet 2.1-M4版本。我嘗試了2.2-RC2,甚至使用「穩定的」2.1.7 Restlet版本。
我知道這個應用程序已經過「Restlet Framework 2.1 Milestone 4」的測試,但對我來說聽起來太奇怪了,以至於後來的穩定版本2.1.7在像這樣一個簡單的例子上瘋狂!
該應用程序本身非常簡單,我不能看到問題可能依賴的地方,除了restlet庫自身的「bug」之外。 我可以想象的唯一其他選擇是,在restlet 2.1-m4之後,爲了讓java序列化工作正常,必須在客戶端和/或服務器中添加一些額外的代碼段,這對於2.1- M4。
任何意見或建議將不勝感激。
最佳,
拉斐爾格拉維納
非常感謝Jerome,所以我需要做的就是在我的classpath中添加org.restlet.ext.jackson.jar?我是否也必須在java源代碼中明確設置Jackson轉換器? 此外,雲,你更精確:org.restlet.ext.jackson.jar需要哪些庫已知? 感謝您的支持! – user3356932
Jerome Louvel,請你詳細說明你的答案。我也面臨這個問題。通過添加傑克遜罐子沒有任何幫助。我應該修改java代碼以強制使用jackson嗎? – vogash
如果通過Maven配置Jackson擴展,則所有依賴關係都會自動生成。如果您使用Zip分配,則會有一個/lib/readme.txt文件列出所有依賴關係。 –