Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    Help X Tesi :-(((((((((((((((((((

    Ragazzi aiutatemi ...non riesco a compilare questo codice in java :-(((((((((((((((((( E' un server che deve ricevere dei messaggi sulla porta 2000 elaborarli attraverso delle procedure e generare dei messaggi di risposta tutto qui ma non ne vuole sapere!!! dovrei poi estenderlo per gestire il multithread!! Non mancheranno i ringraziamenti nella tesi :-)))))) . ( uso linux (per eseguire le query su DBMS Postresql) mandrake 9.1 con netbeans della sun)




    /* CUP REMOTO Il cup considera solo i campi di tipo R*/


    import java.net.*;
    import java.io.*;
    import java.sql.*;
    import java.util.StringTokenizer;
    import java.lang.*;

    /** prova */
    public class ServerCup

    {

    static Connection c = null;
    static String rapporto = "";
    static String delim1 = "\n";
    static String escape = "" ;
    static String delim2 = "|";
    static int port=2000;
    static String driver = "org.postgresql.Driver";
    static String login = "antonio";
    static String psw = "telemedicina";
    static String database = "cup";
    static String Message_Type = new String ();
    static String Messagge_Control_id = new String () ;
    static String Sending_Application = new String () ;
    static String Sending_Facility = new String();




    static String msh (int codice , String tipo_messaggio)

    {
    String MSH = new String ();
    switch (codice)
    {

    case 1:
    {
    MSH = "MSH|^~"+escape+"&||CUP_APP|CUPREMOTO|"+Sending_Ap plication+"|"+Sending_Facility+"|||"+tipo_messaggi o+"|"+Messagge_Control_id+"||ver 2.3.1||\n";
    }break;

    case 2:
    {
    // MSH ="MSH|^~\&||CUP_APP|CUPREMOTO||||||||ver 2.3.1||\n";
    }break;

    }
    return MSH;

    }






    static String dsp ( String Line )

    {
    String DSP = new String ();

    switch (Line)
    {
    case S:
    {
    DSP = "|DSP|Il servizio è attualmente disponibile|\n" ;
    }break;

    case N:
    {
    DSP = "|DSP|Il servizio non è attualmente disponibile|\n" ;
    }break;
    // default DSP="DSP|"+Line+"|\n";

    }


    return DSP;

    }





    static String msa (String codice)

    {
    String MSA = new String ();
    switch (codice)
    {

    case AA:
    {
    MSA = "MSA|AA|"+Message_Type+"||||\n";
    }break;

    case AR_r:
    {
    MSA = "MSA|AR|||||\n";
    }break;

    case AR_m:
    {
    MSA = "MSA|AR|"+Message_Type+"||||\n";
    }break;
    }
    return MSA;
    }





    /*La tabella storico contiene tutte le informazioni relative
    agli accessi effettuati al Server da parte dei client (ADT).*/


    static void storico (Connection c, String tabella)
    {

    PreparedStatement ins = c.prepareStatement(" INSERT INTO " +tabella + " VALUES (?,?,?,?)");
    ins.setString(Messagge_Control_id,Sending_Applicat ion,Sending_Facility ,Message_Type);
    insert.executeUpdate();
    }




    static String connessione()

    {
    String message = new String ();
    try

    {

    // Il serverSocket è una porta che aspetta che qualche cliente adt
    // venga a bussare.

    ServerSocket server = new ServerSocket(port);
    System.out.print("....in attesa di connessioni dai sistemi adt");

    // accept è bloccante fino all'arrivo di una connessione

    Socket s = server.accept();

    System.out.print("Connessione avvenuta con successo");
    BufferedReaderinFromClient = new BufferedReader (new InputStreamReader(s.getInputStream()));
    DataOutputStream outToClient = new DataOutputStream (s.getOutputStream ());
    message = inFromClient.readLine();
    }
    catch (SQLException e)
    {
    printException ("Non riesco a connettermi con il Server CUP");
    gestione_errore (1);
    }
    return message;

    }





    /*Il parser è in grado di prelevare dal messaggio i campi
    o i segmenti a seconda del valore di delim. Ritorna un
    vettore contenete i token.*/



    static Vector parser (String mes_hl7,String delim)

    {
    Vector query = new Vector();
    boolean returnDelims = false ;//non considera i separatori come token
    StringTokenizer st = new StringTokenizer(mes_hl7,delim,returnDelims);
    while (st.hasMoreTokens())

    {
    System.out.println(st.nextToken());
    query.addElement(st.nextToken()) ;
    }

    return query ;
    }






    // Connessione al database



    static Connection Conn ()
    {
    Connection c = null;
    String dbUrl;
    try {
    Class.forName(driver);
    }

    catch (ClassNotFoundException e)

    {
    printException ("Non trovo la driver del database", e);
    gestione_errore (1);
    }

    dbUrl = "jdbcostgresql:" +database;
    try {
    c = DriverManager.getConnection(dbUrl, login , psw);
    }
    catch (SQLException e)
    {
    printException ("Non riesco a connettermi con il database " + database ,e);
    gestione_errore (1);
    }

    textArea.appendText ("Connesso con il database " + database + "\n");
    return c;

    }

  2. #2
    ...CONTINUO
    //Original mode

    static String Send_message_DSR (String disp ,Vector query ,String QRD , String QRF)

    {

    try
    {

    Message_Type = (String)query.elementAt(8); // va inserito in MSA
    Messagge_Control_id = (String)query.elementAt(9); // identificativo unico della query
    Sending_Application = (String)query.elementAt(2); // Applicazione che trasmette
    Sending_Facility = (String)query.elementAt(3); // Istituzione che trasmette
    String messaggiohl7out=msh(1,"DSR")+msa("AA")+QRD+delim1+ QRF+delim1+dsp(disp);
    outToClient.writeBytes (+messaggiohl7out);
    }

    catch (SQLException e)
    {
    System.out.println ("Non riesco ad inviare il messaggio");
    System.out.println (e);
    gestione_errore (1);
    }
    }




    // Ricerca della disponibilità nella tabella servizi



    static String ricerca (String What_department_Data_Code)

    {

    try

    {

    PreparedStatement seleziona = c.prepareStatement("SELECT * FROM servizi WHERE id LIKE ?");
    seleziona.setString(What_department_Data_Code);
    ResultSet res=seleziona.executeQuery(); // conterrà la riga desiderata se presente
    String disp = rs.getString("disponibilita");
    seleziona.close ();
    }


    catch (SQLException e)
    {
    System.out.println ("Non riesco ad accedere alla tabella servizi");
    System.out.println (e);
    gestione_errore (1);
    }



    return disp;
    }




    /*Controllo . La procedura può essere estesa anche ad altri tipi di
    segmenti. */


    static String controllo_messaggio (String segmento ,String delim , int indice )

    {
    String flag="OK";
    StringTokenizer segment = new StringTokenizer(segmento,delim);
    int count = fields.countTokens ( );
    count=count-1;
    String tipo = fields.nextToken ( );
    switch (indice)
    {
    case 1 : //MSH

    {
    if (count!=20 || tipo!="MSH")
    {
    flag=" - Errore nel segmento MSH";
    }
    } break;

    case 2 : //QRD

    {
    if (count!=12 || tipo!="QRD")
    {
    flag=" - Errore nel segmento QRD";
    }
    }break;

    case 3 : //QRF

    {
    if (count!=9 || tipo!="QRF")
    {
    flag=" - Errore nel segmento QRF";
    }
    }break;
    }



    return flag;
    }





    static void gestione_errore (int errore )

    {

    switch (errore)
    {
    case 1 :

    {
    messaggiohl7out = msh (2,"")+msa("AR_r");
    outToClient.writeBytes (+messaggiohl7out);

    }break;

    case 2 :

    {
    messaggiohl7out=msh(1,"ACK")+msa("AR_m")+err();
    outToClient.writeBytes (+messaggiohl7out);
    }break;


    }



    }


    ...Continua

  3. #3
    static String err()

    {
    String ERR = new String ();
    return ERR ="ERR|"+rapporto+"\n";

    }






    public static void main (String argv[])

    {

    // Il server si pone in attesa di richieste di connessione da parte dei client
    // restituisce quindi un messaggio hl7

    String mes_hl7 = connessione ();


    // I segmenti saranno contenuti nel vettore query


    // I segmenti QRD e QRF saranno ripetuti nel messaggio di risposta DSR esattamente come quelli
    // nel messaggio QRD^Q01 come da specifica.

    Vector query = parser (mes_hl7,delim1);


    /*Controllo validità messaggio . La procedura controlla che :

    1) il numero di campi presenti nel segmento siano in numero pari a quelli
    specificati dallo standard HL7

    2) il tipo di segmento*/

    for (int i=0; i<=2; i++)
    {
    rapporto = rapporto+controllo_messaggio ((String)query.elementAt(i), delim1 , i);
    }
    if (rapporto!="OKOKOK")
    {
    gestione_errore (2);
    }
    else
    {
    String MSH = (String)query.elementAt(0);
    String QRD = (String)query.elementAt(1);
    String QRF = (String)query.elementAt(2);

    //prelevo i campi del MSH della query

    Vector query = parser (MSH,delim2);

    // mi connetto al database cup remoto

    c = Conn ();

    // prelevo lo stato del servizio (disponibilità)

    String Data_Line = ricerca (What_department_Data_Code);

    //invio il messaggio DSR al client

    Send_message_DSR (Data_Line , query , QRD , QRF);
    }
    }
    }



    ServerCup.java [177:1] cannot resolve symbol
    symbol : class Vector
    location: class ServerCup
    static Vector parser (String mes_hl7,String delim)
    ^
    ServerCup.java [236:1] cannot resolve symbol
    symbol : class Vector
    location: class ServerCup
    static String Send_message_DSR (String disp ,Vector query ,String QRD , String QRF)
    ^
    ServerCup.java [67:1] incompatible types
    found : java.lang.String
    required: int
    switch (Line)
    ^
    ServerCup.java [69:1] cannot resolve symbol
    symbol : variable S
    location: class ServerCup
    case S:
    ^
    ServerCup.java [74:1] cannot resolve symbol
    symbol : variable N
    location: class ServerCup
    case N:
    ^
    ServerCup.java [95:1] incompatible types
    found : java.lang.String
    required: int
    switch (codice)
    ^
    ServerCup.java [98:1] cannot resolve symbol
    symbol : variable AA
    location: class ServerCup
    case AA:
    ^
    ServerCup.java [103:1] cannot resolve symbol
    symbol : variable AR_r
    location: class ServerCup
    case AR_r:
    ^
    ServerCup.java [108:1] cannot resolve symbol
    symbol : variable AR_m
    location: class ServerCup
    case AR_m:
    ^
    ServerCup.java [128:1] setString(int,java.lang.String) in java.sql.PreparedStatement cannot be applied to (java.lang.String,java.lang.String,java.lang.Strin g,java.lang.String)
    ins.setString(Messagge_Control_id,Sending_Applicat ion,Sending_Facility ,Message_Type);
    ^
    ServerCup.java [129:1] cannot resolve symbol
    symbol : variable insert
    location: class ServerCup
    insert.executeUpdate();
    ^
    ServerCup.java [154:1] cannot resolve symbol
    symbol : variable BufferedReaderinFromClient
    location: class ServerCup
    BufferedReaderinFromClient = new BufferedReader (new InputStreamReader(s.getInputStream()));
    ^
    ServerCup.java [156:1] cannot resolve symbol
    symbol : variable inFromClient
    location: class ServerCup
    message = inFromClient.readLine();
    ^
    ServerCup.java [160:1] cannot resolve symbol
    symbol : method printException (java.lang.String)
    location: class ServerCup
    printException ("Non riesco a connettermi con il Server CUP");
    ^
    ServerCup.java [180:1] cannot resolve symbol
    symbol : class Vector
    location: class ServerCup
    Vector query = new Vector();
    ^
    ServerCup.java [180:1] cannot resolve symbol
    symbol : class Vector
    location: class ServerCup
    Vector query = new Vector();
    ^
    ServerCup.java [213:1] cannot resolve symbol
    symbol : method printException (java.lang.String,java.lang.ClassNotFoundException )
    location: class ServerCup
    printException ("Non trovo la driver del database", e);
    ^
    ServerCup.java [223:1] cannot resolve symbol
    symbol : method printException (java.lang.String,java.sql.SQLException)
    location: class ServerCup
    printException ("Non riesco a connettermi con il database " + database ,e);
    ^
    ServerCup.java [227:1] cannot resolve symbol
    symbol : variable textArea
    location: class ServerCup
    textArea.appendText ("Connesso con il database " + database + "\n");
    ^
    ServerCup.java [248:1] operator + cannot be applied to java.lang.String
    outToClient.writeBytes (+messaggiohl7out);
    ^
    ServerCup.java [248:1] cannot resolve symbol
    symbol : variable outToClient
    location: class ServerCup
    outToClient.writeBytes (+messaggiohl7out);
    ^
    ServerCup.java [275:1] setString(int,java.lang.String) in java.sql.PreparedStatement cannot be applied to (java.lang.String)
    seleziona.setString(What_department_Data_Code);
    ^
    ServerCup.java [277:1] cannot resolve symbol
    symbol : variable rs
    location: class ServerCup
    String disp = rs.getString("disponibilita");
    ^
    ServerCup.java [291:1] cannot resolve symbol
    symbol : variable disp
    location: class ServerCup
    return disp;
    ^
    ServerCup.java [306:1] cannot resolve symbol
    symbol : variable fields
    location: class ServerCup
    int count = fields.countTokens ( );
    ^
    ServerCup.java [308:1] cannot resolve symbol
    symbol : variable fields
    location: class ServerCup
    String tipo = fields.nextToken ( );
    ^
    ServerCup.java [357:1] cannot resolve symbol
    symbol : variable messaggiohl7out
    location: class ServerCup
    messaggiohl7out = msh (2,"")+msa("AR_r");
    ^
    ServerCup.java [358:1] cannot resolve symbol
    symbol : variable messaggiohl7out
    location: class ServerCup
    outToClient.writeBytes (+messaggiohl7out);
    ^
    ServerCup.java [358:1] cannot resolve symbol
    symbol : variable outToClient
    location: class ServerCup
    outToClient.writeBytes (+messaggiohl7out);
    ^
    ServerCup.java [365:1] cannot resolve symbol
    symbol : variable messaggiohl7out
    location: class ServerCup
    messaggiohl7out=msh(1,"ACK")+msa("AR_m")+err();
    ^
    ServerCup.java [366:1] cannot resolve symbol
    symbol : variable messaggiohl7out
    location: class ServerCup
    outToClient.writeBytes (+messaggiohl7out);
    ^
    ServerCup.java [366:1] cannot resolve symbol
    symbol : variable outToClient
    location: class ServerCup
    outToClient.writeBytes (+messaggiohl7out);
    ^
    ServerCup.java [406:1] cannot resolve symbol
    symbol : class Vector
    location: class ServerCup
    Vector query = parser (mes_hl7,delim1);
    ^
    ServerCup.java [432:1] cannot resolve symbol
    symbol : class Vector
    location: class ServerCup
    Vector query = parser (MSH,delim2);
    ^
    ServerCup.java [440:1] cannot resolve symbol
    symbol : variable What_department_Data_Code
    location: class ServerCup
    String Data_Line = ricerca (What_department_Data_Code);
    ^
    35 errors
    Errors compiling ServerCup.

  4. #4
    ma quanto ne capisci di java?
    Nella lista degli errori ce ne sono alcuni stupidi


    PS modifica il titolo

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    55
    intanto aggiungi
    import java.util.Vector;

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    55
    sostituisci al metodo static String dsp ( String Line ) questo metodo:

    static String dsp ( String Line )

    {
    String DSP = new String ();
    if(Line.equals("S")){
    DSP = "|DSP|Il servizio è attualmente disponibile|\n" ;
    }else if(Line.equals("N")){
    DSP = "|DSP|Il servizio non è attualmente disponibile|\n" ;
    }

    return DSP;

    }

    utilizza lo stesso sistema per il metodo: static String msa (String codice)


    controlla sulla documentazione se PreparedStatement ha un metodo setString che accetta i pqrametri che gli passi (il caso è questo):
    static void storico (Connection c, String tabella)
    {

    PreparedStatement ins = c.prepareStatement(" INSERT INTO " +tabella + " VALUES (?,?,?,?)");
    ins.setString(
    ins.setString(Messagge_Control_id,Sending_Applicat ion,Sending_Facility ,Message_Type);
    insert.executeUpdate();
    }

    poi ricompila e vediamo cosa altro è da fare....

  7. #7
    postgresql cerca di fare dei titoli + comprensivi prossimamente
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  8. #8
    si scusate mi sono fatto prendere dal panico ...cmq i molti errori erano abbastanza stupidi :-)))) ora però quando lancio il progr mi divide si' il messaggio in 3 token che mi vengono stampati correttamente ma non me li ritrovo nel vettore ; questa è la funzione incriminata:

    static Vector parser (String mes_hl7,String delim)

    {

    Vector query = new Vector();
    StringTokenizer st = null ;
    boolean returnDelims = false ;//non considera i separatori come token
    System.out.println("Messaggio in arrivo dal client "+mes_hl7);
    try
    {
    st = new StringTokenizer(mes_hl7,delim,returnDelims);
    }
    catch(Exception e){System.out.println("Errore in token");
    }

    try
    {

    while (st.hasMoreTokens()!=false)

    {

    System.out.println(st.nextToken());


    }


    }


    catch(Exception e){
    System.out.println("Errore in token"); }

    try
    {

    while (st.hasMoreTokens()!=false)

    {

    query.addElement(st.nextToken()) ;


    }


    }


    catch(Exception e){
    System.out.println("Errore in token"); }


    return query ;


    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Inserisci la linea di codice in cui aggiungi i token
    all'oggetti query prima/dopo la stampa a video:
    Nel tuo codice, una volta stampati i token a video,
    il controllo sulla disponibilità di token da un
    risultato falso. Di conseguenza il ciclo di aggiunta
    elementi non viene mai eseguito.
    Riporto un'estratto del codice da utilizzare:
    codice:
    {
        Vector query = new Vector();
        StringTokenizer st = null;
        boolean returnDelims = false;
        System.out.println("Messaggio in arrivo dal client " + mes_hl7);
        
        try {
            st = new StringTokenizer(mes_hl7, delim, returnDelims);
        } catch (Exception e) {
            System.out.println("Errore in token");
        }
    
        try {
            while (st.hasMoreTokens()!=false) {
                String token = st.nextToken();
                System.out.println(token);
                query.addElement(token);
            }
        } catch(Exception e) {
            System.out.println("Errore in token");
        }
    
        return query ;
    }
    Ho cercato di stravolgere il meno possibili quello
    che era il tuo codice.

    Ciao.
    Slack? Smack!

  10. #10
    Innanzitutto Grazie mille x la disponibilità ora prova provo cosi' . La stampa dei token non è necessaria l'ho usata solo per vedere se i token venivano prelevati correttamente dalla stringa . quindi la stampa mi blocca la memorizzazione nel vettore mah strano cmq ora ci dò un occhiata tempus sfuggi!!!! :-)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.