PDA

View Full Version : Tip: How to connect Jpivot with Microsoft Analysis Services



zanorte
12-14-2006, 06:15 AM
Hi all,

We´ve made some test trying to connect MSFT AS Cubes to Jpivot, and as a result of our investigations, we´ve create this short 'how to' document to do it.

The present document we attach, contains the steps and the data obtained after the investigation made with the intention of connecting the OLAP interface JPivot to a cube of Analysis Services of Microsoft via XMLA.

Please, if you have any comment, improvement, suggestion... post a comment or write us.

Zan
www.TodoBI.com

Noah
01-06-2007, 03:54 PM
I would very much like to accomplish what you have provided in your tutorial "how to" document. I thought that I had followed each step you outlined, but I am still getting an error. Here is what I have so far....
I have deployed Jpivot over Jboss as outlined in the document so that when I go to http://localhost:8080/jpivot I am presented with a page that allows for some samples to be viewed.

I added a .jsp in the jpivot.war\WEB-INF\queries called "Noah.jsp"
Here is what is in the .jsp:
<%@ page session="true" contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib uri="http://www.tonbeller.com/jpivot" prefix="jp" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<jp:xmlaQuery id="query01"
uri="http://mywebserver/bidb01/msxisapi.dll"
catalog="ProcureITCubeDB">
SELECT {[Measures].[Pototal]} ON COLUMNS, {[Vendor].[All Vendor]}
ON ROWS FROM [VendorPO]
</jp:xmlaQuery>

<c:set var="title01" scope="session">Noah</c:set>

I have also added a datasource to the datasource.xml here:

\\mywebserver\Program Files\Microsoft XML For Analysis SDK\Config\datasource.xml

It looks like this:

<DataSource>
<DataSourceName>ProcureITCubeDB</DataSourceName>
<DataSourceDescription>Test of cube on PIT for jpivot</DataSourceDescription>
<URL>http://mywebserver/bidb01/msxisapi.dll</URL>
<DataSourceInfo>Provider=MSOLAP;Data Source=local</DataSourceInfo>
<ProviderName>Microsoft XML for Analysis</ProviderName>
<ProviderType>
<TDP/>
<MDP/>
<DMP/>
</ProviderType>
<AuthenticationMode>Unauthenticated</AuthenticationMode>
</DataSource>

When I test the url http://mywebserver/bidb01/msxisapi.dll
I get the SOAP response exactly as in the documentation. I can get this response from any pc on our network by going to that URL.

Now, when I go to http://localhost:8080/jpivot/testpage.jsp?query=Noah

I receive the following error:

org.apache.jasper.JasperException: Exception in JSP: /testpage.jsp:44 41:
42: 43: 44: 45: 46: 47: Stacktrace:
org.apache.jasper.JasperException: Exception in JSP: /testpage.jsp:44

41:
42:
43:
44:
45:
46:
47:


Stacktrace:
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.tonbeller.wcf.controller.RequestFilter$MyHandler.normalRequest(RequestFilter.java:139)
at com.tonbeller.wcf.controller.RequestSynchronizer.handleRequest(RequestSynchronizer.java:127)
at com.tonbeller.wcf.controller.RequestFilter.doFilter(RequestFilter.java:263)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:534)

javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: Soap Fault code=XMLAnalysisError.80004005 fault string=Unspecified error fault actor=XML for Analysis Provider detail:
javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: Soap Fault code=XMLAnalysisError.80004005 fault string=Unspecified error fault actor=XML for Analysis Provider
detail:
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:854)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
at org.apache.jsp.testpage_jsp._jspService(testpage_jsp.java:258)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.tonbeller.wcf.controller.RequestFilter$MyHandler.normalRequest(RequestFilter.java:139)
at com.tonbeller.wcf.controller.RequestSynchronizer.handleRequest(RequestSynchronizer.java:127)
at com.tonbeller.wcf.controller.RequestFilter.doFilter(RequestFilter.java:263)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:534)

Is it possible to see what might be the problem from this error? I feel like I am sooooo close to being able to see my own data, but besides your very good document, I have received no help on getting information from my MS Analysis Cubes.

Thank you,

Noah

Noah
01-10-2007, 01:22 PM
I figured it out. This turned out to be a security permissions issue with the cube. First I had to install the latest service pack for MS Analysis and then I had to add a user to the cubes managed roles called IUSR_nameofserver - it is a local user on the server where the cube is that needs to be added to the cube when using integrated security.

mehul0205
11-12-2008, 04:41 AM
Hi,

I have successfully connected to MSAS via XMLA.

But my problem is , I don't want to use IIS as an intermediatery server interacting with MSAS.

Is there any other way where connection to MSAS can be made without using IIS in between.