問題,而試圖調用一個RESTful Web服務方法,我得到這個錯誤。REST風格的返回類型
這裏是我調用該方法從我的代碼的方式:
try{
PINClient pin=new PINClient();
String[] resp = pin.tramo(String[].class, "1");
out.println("pin"+resp[1]);
}catch(Exception e){
out.println(e);
}
答案是應該來作爲文本/ XML,正如我在RESTful Web服務指定的,但我不知道是什麼正在造成這個問題。 的web服務方法:
@GET
@Produces("text/xml")
public String[] tramo(@QueryParam("tramo") String tramo) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
String[] pin=new String[300];
Class.forName("oracle.jdbc.OracleDriver").newInstance();
Connection conexion = DriverManager.getConnection("jdbc:oracle:thin:@172.17.56.133:1521:TRACK", "oc","oc");
Statement stmt=conexion.createStatement();
ResultSet rs1=stmt.executeQuery("select IDT.ROWID, IDT.ID_ID, IDT.ID_PST_ID, IDT.ID_UM_ID,IDT.ID_POS, IDT.ID_PULSOS, IDT.ID_LANZAR, TEL_FISKERNEL.TEL_COLOR_EXT, TEL_FISKERNEL.TEL_SEC_MONT,TEL_FISKERNEL.TEL_PRS_FAM,TEL_FISKERNEL.TEL_SORTENES_FAM from IDT,TEL_FISKERNEL where IDT.ID_UM_ID = TEL_FISKERNEL.TEL_PIN and ID_PST_ID="+tramo+" order by ID_POS");
int i=0;
while(rs1.next()){
pin[i]=rs1.getString("ID_UM_ID");
i++;
}
rs1.close();
stmt.close();
conexion.close();
return pin;
}
而web服務客戶端:
public <T> T tramo(Class<T> responseType, String tramo) throws ClientErrorException {
WebTarget resource = webTarget;
if (tramo != null) {
resource = resource.queryParam("tramo", tramo);
}
return resource.request(javax.ws.rs.core.MediaType.TEXT_XML).get(responseType);
}
@Produces( 「文本/ XML」),但方法返回字符串[]? – john
是的......它與一個普通的String一起工作,我該怎麼辦? – Asiertxo
您應該返回String或一些將被映射到xml的自定義類型(稱爲marshalling obj - > xml representation)我不知道我是否會自動映射,您需要檢查您的REST API以找出 – john