2014-04-30 3 views
1

J'ai une source de données qui a un fournisseur MSOLAP Je veux me connecter à cette source via l'application Java. J'ai utilisé le suivant:Connexion MS OLAP avec Java

public static void main(String[] args) throws Exception { 

    // Load the driver 
    Class.forName("org.olap4j.driver.xmla.XmlaOlap4jDriver"); 

    // Connect 
    final Connection connection = 
      DriverManager.getConnection(
       // This is the SQL Server service end point. 
       "jdbc:xmla:Server=http://localhost:81/mondrian/xmla" 

       // Tells the XMLA driver to use a SOAP request cache layer. 
       // We will use an in-memory static cache. 
       + ";Cache=org.olap4j.driver.xmla.cache.XmlaOlap4jNamedMemoryCache" 

       // Sets the cache name to use. This allows cross-connection 
       // cache sharing. Don't give the driver a cache name and it 
       // disables sharing. 
       + ";Cache.Name=MyNiftyConnection" 

          // Some cache performance tweaks. 
          // Look at the javadoc for details. 
          + ";Cache.Mode=LFU;Cache.Timeout=600;Cache.Size=100", 

        // XMLA is over HTTP, so BASIC authentication is used. 
        null, 
        null); 

    // We are dealing with an olap connection. we must unwrap it. 
    final OlapConnection olapConnection = connection.unwrap(OlapConnection.class); 

    // Check if it's all groovy 
    ResultSet databases = olapConnection.getMetaData().getDatabases(); 
    databases.first(); 
    System.out.println(
      olapConnection.getMetaData().getDriverName() 
        + " -> " 
        + databases.getString(1)); 

    // Done 
    connection.close(); 
} 

je reçois la classe OlapConnection est pas compilé. J'ai deux questions: 1- J'utilise maven pour construire ce test et il ne montre pas d'erreurs pourquoi cette classe ne serait-elle pas trouvée?

2- existe-t-il un autre moyen de se connecter à MSOLAP sans utiliser olap4j?

Répondre

1

Ce n'est pas ainsi que vous vous connectez à distance à un service XMLA. Commencez par lire this code, puis vous devrez modifier la chaîne de connexion.

En SSAS, la chaîne de connexion devrait ressembler à ceci:

jdbc:xmla:Server=http://localhost/olap/msmdpump.dll;Catalog=myCatalog 
+0

J'ai essayé l'exemple que vous avez indiqué, mais encore la dépendance Maven ne pouvait pas fournir la classe OlapConnection. J'ai mis à jour le code –

+0

Si votre problème est avec Maven, alors c'est un problème distinct, pas du tout lié à olap4j. Je vous recommande de vous assurer que vous incluez à la fois org.olap4j: olap4j et org.olap4j: olap4j-xmla en tant que dépendances. – Luc