繁体   English   中英

RESTful返回类型的问题

[英]Problems with RESTful return types

我在尝试调用RESTful网络服务方法时收到此错误:

MessageBodyWriter not found for media type=text/xml, type=class [Ljava.lang.String;, genericType=class [Ljava.lang.String;

这是我从代码中调用方法的方式:

 try{
         PINClient pin=new PINClient();

         String[] resp = pin.tramo(String[].class, "1");

             out.println("pin"+resp[1]);

         }catch(Exception e){
             out.println(e);
         }

正如我在RESTful Web服务中指定的那样,答案应该是text / xml,但我不知道是什么导致了此问题。 Webservice方法:

@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;


    }

和网络服务客户端:

  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);
}

Array,List的直接导出是不可能的。 您可以创建一个以数组和列表为成员的类,并可以返回该类的对象。

注意:REST无法返回数组或列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM