RESTful服务返回String []对象时出现问题

时间:2016-05-17 06:23:27

标签: java string rest generics

我开发了一个简单的RESTful Web服务,它返回一个String [],其中包含从数据库中获取的信息。问题是我使用netbeans并倾向于使用类作为此Web服务的客户端,因为netbeans会自动生成它们,在这种情况下,我不知道如何处理webservice方法请求的内容。它与Class泛型类有关,我不知道该怎么做。 以下是来自webservice的方法:

@GET
@Produces("application/json")
public String[] tramo(@QueryParam("tramo") String tramo) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {

    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;


}

正如您所看到的,它返回一个简单的String []对象,这是我在调用此方法时想要获得的,但是当netbeans创建客户端时,其方法编写如下:

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.APPLICATION_JSON).get(responseType);
    }

我应该为此方法提供什么来获取String []?我已经尝试并在线阅读了许多教程,但我只是不明白这种方法的要求。 先谢谢你们!

1 个答案:

答案 0 :(得分:1)

T是您要使用的类型的泛型,因此调用将是这样的

String[] resp = tramo(String[].class, tramo)