2016-03-21 5 views
0

私はRestful Apiを使用しており、POSTMANを介してJSON形式でデータを送信しているSpringの起動アプリケーションを作成しています。そのデータをモデルクラス、つまりRequestデータクラスにマップする必要がありますが、null値を取得しています。JSONからModelクラスにデータをバインドできません

メインクラス

import org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication 
public class ContactApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(ContactGEApplication.class, args); 
    } 
} 

コントローラクラス - これは、コントローラクラスです。このクラスでは、urlを/ rfsにマップします。 import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController;

import com.fasterxml.jackson.core.JsonProcessingException; 
import com.fasterxml.jackson.databind.ObjectMapper; 

@RestController 
public class ContactController { 

    private static Log log = LogFactory.getLog(ContactController.class); 

    @RequestMapping(value = "/rfs", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) 
    public ServiceResponse<String> serviceRequest(@RequestBody RequestData requestData) throws JsonProcessingException { 

     System.out.println(requestData); 
     System.out.println("M in controller"); 
     return ServiceResponse.success(); 

    } 
} 

Request Data.java-これは私のモデルクラスです。これで私はすべてのフィールドとゲッターとセッターを定義しています

public class RequestData { 

    private static final long serialVersionUID = 1L; 
    private String EquipmentID; 
    private String Modality; 
    private String FacilityID; 
    private String CountryCode; 
    private String ISOCode; 
    private String ProblemType; 
    private String ProblemArea; 
    private String EquipmentStatus; 
    private String Name; 
    private String PhoneNumber; 
    private String Extension; 
    private String Description; 
    private String ShortDescription; 
    private String TimePeriod; 
    private String ServiceCode; 
    private String Locale; 
    private String RequestingApp; 
    private String ExamNumber; 
    private String SeriesNumber; 
    private String ImageNumber; 

    public String getEquipmentID() { 
     return EquipmentID; 
    } 

    public void setEquipmentID(String equipmentID) { 
     EquipmentID = equipmentID; 
    } 

    public String getModality() { 
     return Modality; 
    } 

    public void setModality(String modality) { 
     Modality = modality; 
    } 

    public String getFacilityID() { 
     return FacilityID; 
    } 

    public void setFacilityID(String facilityID) { 
     FacilityID = facilityID; 
    } 

    public String getCountryCode() { 
     return CountryCode; 
    } 

    public void setCountryCode(String countryCode) { 
     CountryCode = countryCode; 
    } 

    public String getISOCode() { 
     return ISOCode; 
    } 

    public void setISOCode(String iSOCode) { 
     ISOCode = iSOCode; 
    } 

    public String getProblemType() { 
     return ProblemType; 
    } 

    public void setProblemType(String problemType) { 
     ProblemType = problemType; 
    } 

    public String getProblemArea() { 
     return ProblemArea; 
    } 

    public void setProblemArea(String problemArea) { 
     ProblemArea = problemArea; 
    } 

    public String getEquipmentStatus() { 
     return EquipmentStatus; 
    } 

    public void setEquipmentStatus(String equipmentStatus) { 
     EquipmentStatus = equipmentStatus; 
    } 

    public String getName() { 
     return Name; 
    } 

    public void setName(String name) { 
     Name = name; 
    } 

    public String getPhoneNumber() { 
     return PhoneNumber; 
    } 

    public void setPhoneNumber(String phoneNumber) { 
     PhoneNumber = phoneNumber; 
    } 

    public String getExtension() { 
     return Extension; 
    } 

    public void setExtension(String extension) { 
     Extension = extension; 
    } 

    public String getDescription() { 
     return Description; 
    } 

    public void setDescription(String description) { 
     Description = description; 
    } 

    public String getShortDescription() { 
     return ShortDescription; 
    } 

    public void setShortDescription(String shortDescription) { 
     ShortDescription = shortDescription; 
    } 

    public String getTimePeriod() { 
     return TimePeriod; 
    } 

    public void setTimePeriod(String timePeriod) { 
     TimePeriod = timePeriod; 
    } 

    public String getServiceCode() { 
     return ServiceCode; 
    } 

    public void setServiceCode(String serviceCode) { 
     ServiceCode = serviceCode; 
    } 

    public String getLocale() { 
     return Locale; 
    } 

    public void setLocale(String locale) { 
     Locale = locale; 
    } 

    public String getRequestingApp() { 
     return RequestingApp; 
    } 

    public void setRequestingApp(String requestingApp) { 
     RequestingApp = requestingApp; 
    } 

    public String getExamNumber() { 
     return ExamNumber; 
    } 

    public void setExamNumber(String examNumber) { 
     ExamNumber = examNumber; 
    } 

    public String getSeriesNumber() { 
     return SeriesNumber; 
    } 

    public void setSeriesNumber(String seriesNumber) { 
     SeriesNumber = seriesNumber; 
    } 

    public String getImageNumber() { 
     return ImageNumber; 
    } 

    public void setImageNumber(String imageNumber) { 
     ImageNumber = imageNumber; 
    } 

    public static long getSerialversionuid() { 
     return serialVersionUID; 
    } 

    @Override 
    public String toString() { 
     return "RequestData [EquipmentID=" + EquipmentID + ", Modality=" + Modality + ", FacilityID=" + FacilityID 
       + ", CountryCode=" + CountryCode + ", ISOCode=" + ISOCode + ", ProblemType=" + ProblemType 
       + ", ProblemArea=" + ProblemArea + ", EquipmentStatus=" + EquipmentStatus + ", Name=" + Name 
       + ", PhoneNumber=" + PhoneNumber + ", Extension=" + Extension + ", Description=" + Description 
       + ", ShortDescription=" + ShortDescription + ", TimePeriod=" + TimePeriod + ", ServiceCode=" 
       + ServiceCode + ", Locale=" + Locale + ", RequestingApp=" + RequestingApp + ", ExamNumber=" + ExamNumber 
       + ", SeriesNumber=" + SeriesNumber + ", ImageNumber=" + ImageNumber + "]"; 
    } 

} 
+0

ヘッダのあなたの方法の前に@ResponseBodyを追加します: 'コンテンツタイプ:アプリケーション/ json'追加しますか?デバッグポイントのソースであるため、入力、リクエストURLを追加する – VinayVeluri

+0

こんにちはvinayはまだJSONからPOJOクラスRequestDataに値をバインドしていません。 RequestDataフィールドはまだnullです – priyanka

+1

あなたは実際にどのJSONを送信していますか? – mhlz

答えて

0

問題は、RequestDataのフィールドがすべて大文字になっているように見えます。これはgetterとデシリアライザに問題を引き起こすようです。フィールドを小文字で始まるように変更し、JSONリクエストで一致する小文字フィールドを使用すると、RequestDataが入力されます。

+0

私は小文字でfrstの文字でjsonを送信している場合、そのうまく動作し、データをマッピングしていただきありがとうございます... :) – priyanka

0

休憩

@RestController 
public class ContactGEController { 

    private static Log log = LogFactory.getLog(ContactGEController.class); 

    @RequestMapping(value = "/rfs", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) 
@ResponseBody 
    public ServiceResponse<String> serviceRequest(@RequestBody RequestData requestData) throws JsonProcessingException { 

     System.out.println(requestData); 
     System.out.println("M in controller"); 
     return ServiceResponse.success(); 

    } 
} 
関連する問題