PDA

View Full Version : Documentation to embed pentaho into my application



raghukokku
07-27-2006, 08:54 PM
Hi,

Can anyone provide any documentation on the procedure to embed the pentaho into my application.

What i have done is put pentaho.war and myapplication.war in jboss. Is it the right procedure but the application context is differing and i am getting a null pointer exception as pentaho system is looking for an application context.

Can anyone help me in this regard.

regards,

raghu

jdixon
07-27-2006, 09:18 PM
You can completely embed Pentaho into your myapplication.war.

This is probably easier than trying to reach from your myapplication.war to pentaho.war (unless you are only doing URL level integration).

You will need to merge the WEB-INF/web.xml from pentaho.war and copy over the Pentaho jars and JSPs that you need (start by copying all of them over so that you don't miss any and spend time trying to work out which one you need.)

I hope this gives you a few pointers.

James

raghukokku
07-27-2006, 09:24 PM
Thanks James,

I will try that.

raghukokku
07-27-2006, 10:07 PM
Hello James,

I am getting the following exception. I think this is because of pentaho.xml. Do i need to mention pentaho.xml in web.xml.

What i have done is i have mentioned ViewAction servlet in web.xml and copied all the jars and jsp's in myapplication.war.

Am i heading in the right direction.



java.lang.ExceptionInInitializerError
at org.pentaho.audit.AuditEntry.<clinit>(Unknown Source)
at org.pentaho.audit.AuditHelper.audit(Unknown Source)
at org.pentaho.session.BaseSession.<init>(Unknown Source)
at org.pentaho.session.PentahoHttpSession.<init>(Unknown Source)
at org.pentaho.util.UIUtil.getPentahoSession(Unknown Source)
at org.pentaho.ui.servlet.ServletBase.getPentahoSession(Unknown Source)
at org.pentaho.ui.servlet.ViewAction.doGet(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
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 org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(Unknown Source)
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.CustomPrincipalValve.invoke(Unknown Source)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Unknown Source)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(Unknown Source)
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:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744
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:595)
Caused by: java.lang.NullPointerException
at org.pentaho.system.PentahoSystem.getSystemSetting(Unknown Source)


Thanks for your co-operation.

raghu

jdixon
07-27-2006, 11:22 PM
Yes you are heading in the right direction.

I think you need two more things in your web.xml

You need to copy over the setting from the Pentaho web.xml that hooks up the context listener



<listener>
<listener-class>org.pentaho.core.system.SolutionContextListener</listener-class>

</listener>


and you might need a setting to specify where the Pentaho solution files are. If you started with one of our demo installations then this is not necessary.



<context-param>
<param-name>solution-path</param-name>
<param-value>/some/path/pentaho-solutions</param-value>
</context-param>


James

raghukokku
07-28-2006, 01:36 AM
Hello James.

Sorry to disturb you once again.

Placing the listeners in the web.xml is not recognizing myapplication.war. It is throwing an error saying "Resource not found". It is unable to recognize the path.

Can i write an application.xml file which will have the context's of the two war's. I have even tried with that but failed.

Thank's for your patience.

raghu

jdixon
07-28-2006, 09:10 AM
Here is another idea for you.

would it be possible for you to take pentaho.war, rename it, and deploy your application into it. That way you only have to work in your pieces, which you probably understand better than our pieces.

James

jhaile
10-02-2006, 03:41 AM
This sounds like an awful method of embedding pentaho into your application. What happens when the next version of pentaho comes out? How are you going to upgrade the pentaho files if they are all mixed in with your application?

I'm not trying to criticize your advice - I'm just criticizing pentaho itself. It seems far too intruisive and there doesn't seem to be a way to easily integrate it into an exisitng application. This is my biggest beef with the pentaho platform.

jdixon
10-02-2006, 07:56 AM
I'm just giving different options.


You can embed Pentaho as a set of libraries into a standalone application.
You can embed Pentaho as a set of libraries into a web-based application.
You can deploy the Pentaho WAR into your own servlet-engine.
You can deploy the Pentaho WAR into your own application server.
You can take Pentaho's Pre-configured Installation and customize it (or not)


You have many options.

The issue of how you manage an update to a Java library is the same no matter where the library comes from. However we do not release an update until we are sure that all the Pentaho libraries and third party libraries work together (e.g. Pentaho, Mondrian, Kettle, JFreeReport, JPivot , JasperReports, BIRT, Mozilla Rhino, etc etc).

I was suggesting the approach below because people typically know their own libraries, web.xml settings etc better than they know Pentaho's.

James Dixon