Re: problems in creating a web service

"Scott Nichol" <[email protected]>
Newsgroups gmane.text.xml.soap.user
Message-ID <189801c4b6cd$038f7260$6401a8c0@northgate>
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
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.