In this case, it would mean to create classes with just program logic and no user I/O 
from the classes with user I/O.  For example, the servizio method c_Elenco currently 
writes a list of files to System.out.  The program logic here would be getting the 
list of files.  The user I/O is printing them to System.out.  A class used for a SOAP 
service might have a method that returned the list of files in an array.  There might 
then be a class used by the client application that would call this SOAP method to get 
the list, then print the file names to System.out.

Scott Nichol

Do not send e-mail directly to this e-mail address,
because it is filtered to accept only mail from
specific mail lists.
----- Original Message ----- 
From: "Francesco Dipalo" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, October 20, 2004 1:55 PM
Subject: Re: problems in creating a web service


> What does it mean "to factor a class"?
> ----- Original Message ----- 
> From: "Scott Nichol" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, October 20, 2004 7:48 PM
> Subject: Re: problems in creating a web service
> 
> 
> It looks to me like servizio methods prompt the user for input and write
> stuff to System.out.  SOAP does not interact with a user.
> 
> The composizione also seems to directly or indirectly interact with
> System.in and System.out.  Besides that, it has no methods, just a
> constructor.
> 
> To expose some of your logic through SOAP, you need to factor out classes
> that just do computations, file and database I/O, etc.  The code that
> interacts with a human needs to be in the client application.
> 
> Scott Nichol
> 
> Do not send e-mail directly to this e-mail address,
> because it is filtered to accept only mail from
> specific mail lists.
> ----- Original Message ----- 
> From: "Francesco Dipalo" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, October 20, 2004 1:00 PM
> Subject: Re: problems in creating a web service
> 
> 
> > For example, if I have this java class
> >
> > package javasoap.book.ch4;
> > public class MethodCounter {
> >    int _counter;
> >    public MethodCounter() {
> >       _counter = 0;
> >    }
> >    public int getCount() {
> >       return _counter;
> >    }
> >  }
> > I create a deployment descriptor file and an application like this to
> > execute the getCount method:
> >
> > package javasoap.book.ch4;
> > import java.net.*;
> > import org.apache.soap.*;
> > import org.apache.soap.rpc.*;
> > public class GetCountApp {
> >    public static void main(String[] args)
> >       throws Exception {
> >
> >       URL url =
> >         new URL(
> >           "http://localhost:8080/soap/servlet/rpcrouter";);
> >
> >       Call call = new Call();
> >       call.setTargetObjectURI("urn:CallCounterService");
> >       call.setMethodName("getCount");
> >       try {
> >          Response resp = call.invoke(url, "");
> >          Parameter ret = resp.getReturnValue();
> >          Object value = ret.getValue();
> >          System.out.println("Result is " + value);
> >       }
> >       catch (SOAPException e) {
> >          System.err.println("Caught SOAPException (" +
> >                          e.getFaultCode() + "): " +
> >                          e.getMessage());
> >       }
> >    }
> > }
> >
> > Do you understand now what my purpose is? In my case I want to execute
> > servizio and composizione methods.
> > ----- Original Message ----- 
> > From: "Scott Nichol" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Wednesday, October 20, 2004 4:18 PM
> > Subject: Re: problems in creating a web service
> >
> >
> > What exactly do you mean by "transform this software in a web service"?
> > What classes and/or methods to you want to access via SOAP?
> >
> > Scott Nichol
> >
> > Do not send e-mail directly to this e-mail address,
> > because it is filtered to accept only mail from
> > specific mail lists.
> > ----- Original Message ----- 
> > From: "Francesco Dipalo" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Wednesday, October 20, 2004 2:41 AM
> > Subject: problems in creating a web service
> >
> >
> > I have this software:
> >
> >
> > THE APPLICATION_CONTROLLER CLASS
> > import java.io.*;
> > import java.util.*;
> > public class application_controller {
> >  public static void main(String [] args) {
> >        servizio s = new servizio();
> >        composizione c = new composizione(
> >               s.c_Nomefile1, s.c_Nomefile2, s.c_Nomefile );
> >  }
> > }
> >
> >
> > THE SERVIZIO CLASS
> > import java.io.*;
> > import java.util.*;
> > public class servizio {
> >  public static String c_Nomefile;
> >  public static String c_Nomefile1;
> >  public static String c_Nomefile2;
> >  public servizio() {
> >        c_Elenco();
> >        c_Scelta();
> >  }
> >  static private void c_Elenco() {
> >   System.out.println("ELENCO SERVIZI:");
> >   String [] lista = new File(".").list();        //crea lista
> >   for(int cx=0; cx<lista.length; cx++)
> >     if ( new File(lista[cx]).isFile() )          //verifica se S file
> >        if ( lista[cx].toLowerCase().lastIndexOf(".owl") >= 0)     //e con
> > estensione .owl
> >               System.out.print((" þ "+lista[cx]+"
> > ").substring(0,20));
> >  }
> >  static private String input(String prompt) {
> >    String instr = "";
> >    try {
> >        BufferedReader inp = new BufferedReader(new
> > InputStreamReader(System.in));
> >        do {
> >               System.out.print(prompt);
> >        } while ((instr = inp.readLine()).length() == 0);
> >      } catch(Exception e){};
> >    if (instr.lastIndexOf(".") < 0) instr += ".owl";
> >    return instr;
> >  }
> >  static public void c_Scelta() {
> >     c_Nomefile1 = input("\nServizio principale : ");
> >     c_Nomefile2 = input("Servizio da comporre: ");
> >     // crea nome file composto
> >     c_Nomefile = c_Nomefile1.substring(0,c_Nomefile1.lastIndexOf(".")) +
> > c_Nomefile2;
> >  }
> > }
> >
> >
> > THE COMPOSIZIONE CLASS
> > import java.io.*;
> > import java.util.*;
> > public class composizione {
> >  public static int c_Comp;                // esito della composizione
> >  public composizione (String file_1, String file_2, String file_composto)
> {
> >        output out = new output();
> >        if ( (c_Comp = new metodi_xml(file_2).c_ProceduraTag(file_1)) == 0)
> {
> >               out.c_EliminaFile();
> >               out.c_ScriviMessaggio();
> >        } else {
> >               System.out.println("\nFILE COMPOSTO:\n");
> >               out.c_StampaFile();
> >               out.c_SpostaFile(file_1, file_2, file_composto);
> >        }
> >  }
> > }
> >
> >
> > THE METODI_XML CLASS
> > import java.io.*;
> > import java.util.*;
> > public class metodi_xml {
> >  public static String c_Tabella;
> >  final private static String fileTMP = "tmp.owl";
> >  final private static xml_pars owl = new xml_pars();    //classe parsing
> > .XML
> >  private static String tempor;
> >  private static String linea;
> >  private static boolean corretto;
> >  public metodi_xml (String file) {
> >        System.out.print("Apro il file "+file+" ... ");
> >        if (! (corretto = owl.load_parsing(file)) )
> >               System.out.println("Errore!");
> >        else c_CompilaTabella(file);
> >  }
> >  public static void c_CompilaTabella(String file) {     // crea tabella
> >        System.out.println("Ok!\nCompilo la tabella...");
> >        owl.tag(2);          //salta header (tag <?> e tag Ontology)
> >        c_Tabella = tempor = "";
> >        while(true) {
> >               //String tag = owl.ctags();
> >               String tag = owl.tags();
> >               if (owl.nido < 0) break;
> >               tempor += tag; c_AnalisiTag(tag);
> >               if (linea.length() > 1) c_Tabella += linea + "\n";
> >        }
> >  }
> >  public static int c_AnalisiTag(String tag) {           // ritorna tipo
> tag
> > e linea
> >        linea = ".";
> >        if (owl.si_tag(tag,"<owls:") > 0) {
> >               linea = owl.search_true(tag, "owls:Class ", "C") +
> >                       owl.search_true(tag, "owls:ObjectProperty ", "P") +
> >                       //owl.search_true(tag, "owls:Ontology ", "O") +
> >                       linea;
> >               if (linea.length() == 1) {
> >                      System.out.println("Tag sconosciuto: " + tag);
> >                      corretto = false; };
> >               linea += owl.search_tag(tag, "name=");    //"owls:name"
> >        };
> >        return linea.charAt(0);
> >  }
> >  public static int c_ProceduraTag(String file) {        // esegue utility
> >        int comp=0; String temp = "", tag = "";
> >        System.out.print("Apro il file "+file+" ... ");
> >        if (! owl.load_parsing(file) ) {
> >               System.out.println("Errore!");
> >               corretto = false; };
> >        if (corretto) {
> >               System.out.println("Ok!\nAvvio utility...");
> >               owl.tag(2);   //salta header (tag <?> e tag Ontology)
> >               do {
> >                      tag = owl.tags();    //o tag = owl.tag(0);
> >                      int tipo = c_AnalisiTag(tag);
> >                      if (linea.length() > 1) {
> >                             if (c_Tabella.indexOf(linea) < 0) {
> >                                    //temp += owl.ctag_root(owl.xml_id);
> >                                    temp += owl.tag_root(owl.xml_id);
> >                             } else {
> >                                    if (tipo == 'C') comp = 1;  //...
> >                             }
> >                      }
> >               } while (owl.nido >= 0);
> >        };
> >        if (!corretto) { System.out.println("Utility interrotta per
> > errori."); comp = 0; };
> > //     if (temp.length() > 0) {           //aggiunge intestazione padre
> >               owl.reset(); tempor = owl.tags() + owl.tags() +
> >                      tempor + temp + tag; //};   //temp + tempor + tag;
> //};
> >        owl.save_pars(fileTMP, tempor);    //crea file temporaneo
> >        return comp;
> >  }
> > }
> >
> >
> > THE OUTPUT CLASS
> > import java.io.*;
> > import java.util.*;
> > public class output {
> >  final private static String fileTMP = "tmp.owl";
> >  final private static String cartellaServizi = "servizi";
> >  final private static xml_pars owl = new xml_pars(2,8); //classe parsing
> > .XML
> >  private static void waitkey() {
> >   try {
> >        System.out.print("\nPremere INVIO per proseguire...");
> >        System.in.read(); System.out.println();
> >     } catch(Exception e) {}
> >  }
> >  public static void c_SpostaFile(String file_1, String file_2, String
> > file_composto) {
> >        owl.newdir(cartellaServizi);       //se non c'S crea la cartella
> >        //new File(cartellaServizi).mkdirs(); new
> File(fileTMP).renameTo(new
> > File(cartellaServizi + "/" + file_composto));
> >        if (owl.load_parsing(fileTMP)) {
> >               owl.save_parsing(cartellaServizi + "/" + file_composto);
> > c_EliminaFile();
> >               owl.load_parsing(file_1); owl.save_parsing(cartellaServizi +
> > "/" + file_1);
> >               owl.load_parsing(file_2); owl.save_parsing(cartellaServizi +
> > "/" + file_2);
> >        }
> >  }
> >  public static void c_StampaFile() {
> >    int cx=0;
> >    if (owl.load_parsing(fileTMP))
> >        do {   System.out.print(owl.ctags()); if ( ((++cx)&15) == 0)
> > waitkey();
> >        } while (owl.nido >= 0 || cx<3);
> >  }
> >  public static void c_EliminaFile() {
> >        owl.delfile(fileTMP);       //new File(fileTMP).delete();
> >  }
> >  public static void c_ScriviMessaggio() {
> >        System.out.println("\nI due servizi non sono tra loro
> componibili.");
> >        waitkey();
> >  }
> > }
> >
> > How can I create the .dd file and the application file to transform this
> > software in a web service? Thanks for the help and excuse for the lenght
> of
> > the message
> >
> >
> >  --
> >  Email.it, the professional e-mail, gratis per te: http://www.email.it/f
> >
> >  Sponsor:
> >  La foto che hai sempre vicino a te... Stampala su un nostro gadget!
> > * Stelle & Strisce stampa quello che vuoi TU .... dove Vuoi Tu!!
> > *
> >  Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid!16&d -10
> >
> >
> >
> >
> >  --
> >  Email.it, the professional e-mail, gratis per te: http://www.email.it/f
> >
> >  Sponsor:
> >  Il Cinema a casa Tua!: film e dvd a meno di 10 Euro! Clicca e scopri
> tutti i titoli
> >  Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=2755&d=20-10
> >
> 
> 
>  
>  
>  --
>  Email.it, the professional e-mail, gratis per te: http://www.email.it/f
>  
>  Sponsor:
>  Vuoi ricevere gratuitamente, ogni giovedì, manuali e guide per il tuo PC? 
> Aggiornati gratis con Manuali.net! Clicca qui
>  Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=2733&d=20-10
>

Reply via email to