Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JoaoVM

Java Web Service return ArrayList

Recommended Posts

Boas malta,

Estou a construir um web service que irá fazer uma ligação a uma base de dados e que posteriormente vai sacar dados dessa base de dados, acontece que cheguei a um ponto que quero mostrar todos os dados de uma determinada tabela, consigo pesquisar um valor, consigo inserir, mas quando se trata de mostrar todos como sou um pouco verde em java não estou a conseguir. Como não existe parâmetros de entrada o valor de saída é void.
Acontece que consigo mostrar no output do java os parâmetros que escolhi, mas não consigo mostrar na saída (return) do web service propriamente dito.
Se não perceberem alguma coisa não hesitem em perguntar.
Alguma dica?

 

Screenshot_2014_07_07_09_17_37.png


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.ws.BindingType;

/**
 *
 * @author JoaoMartins
 */
@WebService(serviceName = "wsConsumosSobressalentes_ShowAll", portName = "ConsumosSobressalentesPort")
@SOAPBinding  
(  
      style = SOAPBinding.Style.RPC,  
      use = SOAPBinding.Use.LITERAL,  
      parameterStyle = SOAPBinding.ParameterStyle.WRAPPED  
        
)
@BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)

public class ConsumosSobressalentes_ShowAll {
   
@XmlType(name = "ots_xml", propOrder = {"WWONBR", "WSTAT","WRQDTE","WPDESC","WPLNNR","WMCHID"} ) 
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement
public class OTs extends ConsumosSobressalentes_ShowAll{

        @XmlElement(name = "WWONBR")
        public String WWONBR = ""; 
        @XmlElement(name = "WSTAT")
        public int WSTAT = 0;
        @XmlElement(name = "WRQDTE")
        public int WRQDTE = 0;
        @XmlElement(name = "WPDESC")
        public String WPDESC ="";
        @XmlElement(name = "WPLNNR")
        public int WPLNNR = 0;
        @XmlElement(name = "WMCHID")
        public String WMCHID;
    
        public String getWWONBR() {
            return WWONBR;
        }

        public void setWWONBR(String WWONBR) {
            this.WWONBR = WWONBR;
        }

        public int getWSTAT() {
            return WSTAT;
        }

        public void setWSTAT(int WSTAT) {
            this.WSTAT = WSTAT;
        }

        public int getWRQDTE() {
            return WRQDTE;
        }

        public void setWRQDTE(int WRQDTE) {
            this.WRQDTE = WRQDTE;
        }

        public String getWPDESC() {
            return WPDESC;
        }

        public void setWPDESC(String WPDESC) {
            this.WPDESC = WPDESC;
        }

        public int getWPLNNR() {
            return WPLNNR;
        }

        public void setWPLNNR(int WPLNNR) {
            this.WPLNNR = WPLNNR;
        }

        public String getWMCHID() {
            return WMCHID;
        }

        public void setWMCHID(String WMCHID) {
            this.WMCHID = WMCHID;
        }
        
        
    

    }


  
    /**
     * This is a sample web service operation
     */
    @WebMethod(operationName = "show_all", action = "show_all")
    @WebResult(name="query_result")
    public void show_all() {
        
         try{
            
      InitialContext ctx = new InitialContext();
      //The JDBC Data source that we just created
      DataSource ds = (DataSource) ctx.lookup("MySQLDataSource");
      Connection conn = ds.getConnection();

      String query = "SELECT WWONBR, WSTAT, WRQDTE, WPDESC, WPLNNR, WMCHID FROM EWSMST00";
      // create the java statement
       PreparedStatement st = conn.prepareStatement(query);
      ResultSet rs = st.executeQuery();
         
     
        List<OTs> returnOtData = new ArrayList<OTs>();
        System.out.println("||—_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-||");
        System.out.println("||_-_-REGISTOS DAS ORDENS DE TRABALHO-_-_||");
        System.out.println("||_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_||");
        while (rs.next()) {
                OTs otdata = new OTs();
               otdata.setWWONBR(rs.getString("WWONBR"));
               otdata.setWSTAT(rs.getInt("WSTAT"));
               otdata.setWRQDTE(rs.getInt("WRQDTE"));
               otdata.setWPDESC(rs.getString("WPDESC"));
               otdata.setWPLNNR(rs.getInt("WPLNNR"));
               otdata.setWMCHID(rs.getString("WMCHID"));
               returnOtData.add(otdata);
          
              
         
          System.out.println("WWONBR (Número): " + otdata.WWONBR); 
          System.out.println("WSTAT (Estado): " +  otdata.WSTAT);
          System.out.println("WRQDTE (Data de Abertura): " +  otdata.WRQDTE );
          System.out.println("WPDESC (Descrição): " +  otdata.WPDESC);
          System.out.println("WPLNNR (Planificador): " +  otdata.WPLNNR);
          System.out.println("WMCHID (Equipamento):" +  otdata.WMCHID);
          System.out.println("||---------------------------------------||");
          

            }
        System.out.println("Pesquisa Completa!!");
        
        }catch(Exception ex){
            
        
        System.err.println(ex.getMessage());
        System.out.println("Erro Inesperado");
    
        } 
         
  
    }
}

Este web service irá ser chamado numa aplicação C#, existe possibilidade de mostrar estes parâmetros sem ser com o valor do return e apenas com o output do java como está na imagem?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Malta cheguei a solução, fica o código:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.naming.InitialContext;
import javax.sql.DataSource;

/**
 *
 * @author JoaoMartins
 */
@WebService(serviceName = "OtsConsumosSobressalentes")
public class OtsConsumosSobressalentes {

/*----------------------------------------------------------------------------*/    
    
 /*--------------------------------------------------*/
 /*--METODO PARA MOSTRAR TODAS AS OTS DA TABELA OTS--*/
 /*--------------------------------------------------*/
    @WebMethod(operationName = "select_all")
    @WebResult(name = "select_all")
    public OTs[] getSelect_all() {
        
       Collection<OTs> returnOtData_all = new ArrayList<OTs>();
        
        try{

          InitialContext ctx = new InitialContext();
          //The JDBC Data source that we just created
          DataSource ds = (DataSource) ctx.lookup("MySQLDataSource");
          Connection conn = ds.getConnection();


          String mostra_ots_query = "SELECT WWONBR, WSTAT, WRQDTE, WPDESC, WPLNNR, WMCHID FROM EWSMST00";
          // create the java statement
          PreparedStatement st = conn.prepareStatement(mostra_ots_query);
          ResultSet rs = st.executeQuery();

            while (rs.next()) {

                   OTs otdata = new OTs();
                   otdata.setWWONBR(rs.getString("WWONBR"));
                   otdata.setWSTAT(rs.getInt("WSTAT"));
                   otdata.setWRQDTE(rs.getInt("WRQDTE"));
                   otdata.setWPDESC(rs.getString("WPDESC"));
                   otdata.setWPLNNR(rs.getInt("WPLNNR"));
                   otdata.setWMCHID(rs.getString("WMCHID"));
                   returnOtData_all.add(otdata);
            }

            System.out.println("Pesquisa Completa!!");

        }catch(Exception ex){
            System.err.println(ex.getMessage());
            System.out.println("Erro Inesperado");
        }
        
        return returnOtData_all.toArray(new OTs[0]);
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.