簡體   English   中英

如何在CXF Java中將查詢字符串反序列化為Pojo

[英]How to deserialize query string to pojo in cxf java

我正在嘗試將querystring轉換為Pojo。 有什么方法可以將查詢字符串轉換為pojo。 以下是到目前為止我嘗試過的操作:

請求:

POST /Service/services/handler/qpStringtoPOJO HTTP/1.1
Host: localhost
Cache-Control: no-cache

id=123434&value=BB$@##@FDBB$#Gw3r3232rvd

Pojo:

    package com.nexsols.license.model;

    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;

    @XmlRootElement
    public class Pojo {
        String id;
        String value;
        @XmlElement(name="id")
        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        @XmlElement(name="value")
        public String getValue() {
            return value;
        }

        public void setValue(String value) {
            this.value = value;
        }

        @Override
        public String toString() {
            return "Pojo [id=" + id + ", value=" + value + "]";
        }
    }

服務方式:

@POST
@Path("/qpStringtoPOJO")
public String qpStringtoPOJO(@QueryParam("") Pojo pojo){

    System.out.println(pojo);
    return "SUCCESS";
}

當前輸出為Pojo [id = null,value = null]

我正在使用cxf服務,我做錯了嗎? 提前致謝。

鑒於您在以下評論中指出的限制,這是我如何解決此問題的方法:

  1. 使用@Context批注獲取HTTP請求對象
  2. 從請求對象中提取感興趣的參數
  3. 自己構建POJO

嘗試這個...

@POST
@Path("/qpStringtoPOJO")
public String qpStringtoPOJO(@Context HttpServletRequest httpRequest){      
   String id = request.getParameter("id");
   String value = request.getParameter("value");
   Pojo pojo = new Pojo();
   pojo.setId(id):
   pojo.setValue(value);
}

或者這個(盡管我還沒有測試過):

@POST
@Path("/qpStringtoPOJO")
public String qpStringtoPOJO(@FormParam("id") String id, @FormParam("value") String value){     
   Pojo pojo = new Pojo();
   pojo.setId(id):
   pojo.setValue(value);
}

您也可以使用地圖並從request.getParameterMap()獲取它。 然后,您可以將所需的鍵傳遞到此映射以獲取其值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM