Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [axis2+database+eclipse]usare mysql con axis2

    salve raga,
    ho creato un web server in tomcat con plugin axis2, che funziona perfettamente, sia client che server. ora ho l'esigenza di usare un DB mysql. leggendo alcune guide su internet ho visto che bisogna modificare il wile web.xml del progetto e nella cartella webapp un file context.xml con questi dati:
    codice:
    <?xml version="1.0" encoding="UTF-8"?> 
    <Context path="/dbcp" docBase="dbcp">  
        <Resource name="jdbc/trafficLight" auth="Container" type="javax.sql.DataSource" 
            removeAbandoned="true" removeAbandonedTimeout="30" maxActive="80"   
            maxIdle="30" maxWait="10000" username="root" password="root"
            driverClassName="com.mysql.jdbc.Driver"
            url = "jdbc:mysql://localhost:3306/trafficLight"   useUnicode="true"
            characterEncoding="utf-8" characterSetResults="utf8"/>
    </Context>
    .
    dopo di che per poter utilizzare il db dovrei utilizzare una class che crea la connessione al database tipo:
    codice:
     package util;
    
    import java.sql.Connection;
    
    import javax.naming.InitialContext;
    import javax.sql.DataSource;
    
    import org.apache.catalina.Context;
    
    
    public class DBConnection2 {
        public static Connection getConnection() {   
            Connection connection = null;   
            try {
                Context envCtx = (Context) new InitialContext().lookup("java:comp/env/");
                DataSource ds = (DataSource) ((InitialContext) envCtx).lookup("jdbc/trafficLight");
                connection = ds.getConnection();
            }
            catch (Exception e) {
                System.out.println("errore di connessione: \n"+e);
                System.out.println("Connection error: " + e.getMessage());   
            }
            return connection; 
        }
    }
    .
    ho fatto questi passaggi seguendo una guida su internet.
    pero cosi creato questa classe non funziona. in console facendo un print della connessione dice che è null.

    errore della connessione è:
    codice:
    errore di connessione: 
    java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.BasicDataSource cannot be cast to org.apache.catalina.Context
    Connection error: org.apache.tomcat.dbcp.dbcp.BasicDataSource cannot be cast to org.apache.catalina.Context
    la connessione è: null
    qualcuno sa dirmi dove sbaglio, oppure qualcuno conosce una buona guida che spiega tutti i passi da fare.


    grazie in anticipo.
    Ultima modifica di orphenix; 04-04-2014 a 12:10

  2. #2
    Ho risolto, vi spiego i passaggi che ho fatto caso mai serve a qualcuno. nel mio caso e un errore proprio stupido.
    1. scaricarvi il jconnection d mysql e inserirlo nella libreria di tomcat, percorso
    codice:
    {vostraPath}/tomcat/lib
    2. modificare il file context.xml di tomcat. se usate eclipse lo trovate nel vostro project explorer nel progetto server aprite tomcat e vedete che c'è un file context.xml, oppure lo trovate dentro la cartella di tomcat in questo percorso
    codice:
    {vostraPath}/tomcat/conf/context.xml
    inserire in questo file i dati di configurazione per la connessione al DB, dentro la tag context:
    codice:
    <Resource name="jdbc/testDB" auth="Container" type="javax.sql.DataSource"
              maxActive="100" maxIdle="30" maxWait="10000"
              username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/NomeDBCheDoveteUSare"  />
    3. modificare il file web.xml del vostro progetto che si trova: "nomeProgetto/webContent/WEB-INF/web.xml".
    inserire questo codice tra i tag <web-aap>:
    codice:
      <resource-ref>
          <description>DB Connection</description>
          <res-ref-name>jdbc/TestDB</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>
    4. ultimo passaggio creare la classe .java per la connessione al DB:
    codice:
    import java.sql.*; 
    import javax.sql.*;
    import javax.naming.*; 
    
    public class DBConnection {
     Connection conn=null;
    
    public DBConnection(){
        try {
            Context    ctx = new InitialContext();
            Context envctx =  (Context) ctx.lookup("java:comp/env"); 
            DataSource ds =  (DataSource) envctx.lookup("jdbc/TestDB");  
            conn=ds.getConnection();   
        } catch (Exception e) {
            System.out.println("errore di connessione: "+e);
            e.printStackTrace();
        }  
    }
    public Connection getConnection(){
        return conn;
    }
    
    }
    mi raccomando usare javax.naming.context e non org.apache.catalina.context, facevo anche questo errore.
    in DBConnection vanno inseriti i metodi per eseguire le query delete, update, select, oppure col metodo getConnection potete prendere la connessione ed eseguire le questi nei metodi che vi servono.
    Spero che vi sia utile

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    31
    Ciao! Io devo fare la stessa cosa, e ho visto una procedura simile in questo articolo: http://www.html.it/pag/16734/conness...atabase-mysql/
    Che differenza c'è tra usare il tuo approccio e quello spiegato nell'articolo?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.