2016-05-04 25 views
2

私は、タイプノートのnewNoteを持っています。私はnewNoteに値を追加することによって、(ジャクソンライブラリを使用して)オブジェクトを構成することだし、それは大丈夫だが、私が何をしようとすると:ジャーナルの逆シリアル化 - nullオブジェクト参照でのJsonMappingException

String bodyRequest = mapper.writeValueAsString(newNote); 

を私はnullオブジェクト参照の上JsonMappingExceptionを持っています。

私はここに挿入するためにPOSTリクエストのボディを構成しようとしている:

URL url = new URL("http://myUrl"); 

      HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
      connection.setRequestMethod("POST"); 
      connection.setRequestProperty("Content-Type", "application/json"); 
      connection.setRequestProperty("Authorization", mAuth); 
      connection.setDoOutput(true); 

      //here I try to set up the body 
      String bodyRequest = mapper.writeValueAsString(newNote); 



      DataOutputStream dStream = new DataOutputStream(connection.getOutputStream()); 

      //here I have the other problem 
      dStream.writeBytes(bodyRequest); 
      dStream.flush(); 
      dStream.close(); 

を私がしようとしたとき、私は、エラーをしている:

dStream.writeBytes(bodyRequest); 

私はこのように私のObjectMapperを設定:

mapper = new ObjectMapper(); 
       mapper.registerModule(new ThreeTenModule()); 
       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 
       mapper.enable(SerializationFeature.USE_EQUALITY_FOR_OBJECT_ID); 
       mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false); 
       mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false); 
       mapper.configure(DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES, false); 
       mapper.configure(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES, false); 
       mapper.configure(DeserializationFeature.FAIL_ON_NUMBERS_FOR_ENUMS, false); 
       mapper.configure(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY, false); 
       mapper.configure(DeserializationFeature.FAIL_ON_UNRESOLVED_OBJECT_IDS, false); 

と私のノートクラスです:

@Entity 
@JsonIdentityInfo(generator = IdentityGenerator.class) 
@JsonIgnoreProperties(ignoreUnknown = true) 

public class Note { 

@Id 
private Long id; 
private User author; 
private ZonedDateTime created; 
private String content; 
private Status status; 
private User assignee; 
private Activity activity; 
private List<File> attachments = new ArrayList<>(); 
private Boolean restricted; 
private Status NextStatus; 
private User NextAssignee; 

... 
//setters and getters 
//hashcode and equals methods 
... 
} 

どうすればいいですか?

編集

これは私のスタックトレースです:

05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  com.fasterxml.jackson.databind.JsonMappingException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:141) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3613) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2980) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at it.prova.www.b.TicketsNewNotes$PostAsyncCaller.doInBackground(TicketsNewNotes.java:399) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at it.prova.www.b.TicketsNewNotes$PostAsyncCaller.doInBackground(TicketsNewNotes.java:342) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:295) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at java.lang.Thread.run(Thread.java:818) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at it.prova.www.b.best.base.dto.identity.IdentityGenerator.generateId(IdentityGenerator.java:73) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at it.prova.www.b.best.base.dto.identity.IdentityGenerator.generateId(IdentityGenerator.java:12) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at com.fasterxml.jackson.databind.ser.impl.WritableObjectId.generateId(WritableObjectId.java:43) 
05-04 11:32:48.259 4754-5030/it.prova.www.b W/System.err:  at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase._serializeWithObjectId(BeanSerializerBase.java:588) 
05-04 11:32:48.260 4754-5030/it.prova.www.b W/System.err:  at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:148) 
05-04 11:32:48.260 4754-5030/it.prova.www.b W/System.err:  at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:130) 
05-04 11:32:48.260 4754-5030/it.prova.www.b W/System.err: ... 10 more 

答えて

0

ユーザー

mapper.setSerializationInclusion(Include.NON_NULL); 

OR

mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL); 

ジャクソンも設定することができますObjectMapperでこの動作をグローバルに確認してください:

+0

私は試しましたが、newNote == null now ... – Jigen

+0

stackstraceを提供 – Santosh

+0

私は自分の投稿をstackstraceで編集しました – Jigen

関連する問題