[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [birt-dev] BIRT + JSF + HIbernate
|
I solve the problem but I don't like the solution. Perhaps because I don't
know why this solve the problem.
Looking for anything that could help my in google I found something related
with my error but in jboss enviroment. The solution for this problem was to
copy some libraries to jboss common lib directory.
I use this to try to solve my problem and I have copied all BIRT
dependecnies to lib\apps\ in JOnAS base server directory. Now it works!
But my question is: ¿Why I have to copy there this jars? ¿Why if I don´t use
hibernate, faces and BIRT in the same WAR the reports are showed with no
problems?
Still waiting for response.
Thanks.
chua wrote:
>
> Hi,
>
> I have a web application for uploading rptdesing BIRT report files to the
> server. In addition, I have to save some data (like the path of these
> rptdesign files) in a Data Base. The application also allows you to call
> BIRT giving them a parameter with the path of the rptdesign file in order
> to view the report (I get the path from the Data Base).
>
> My application has a dependency:
>
> <dependency>
> <groupId>birt</groupId>
> <artifactId>birt-webapps</artifactId>
> <version>2.1</version>
> <type>war</type>
> </dependency>
>
> I use Hibernate for loading and saving data into Data Base and JSF to
> create the web pages with forms for introducing the data. My application
> server is JOnAS 4.8.4.
>
> As you can imagine, my final WAR will have an WEB-INF directory with
> several files:
>
> - web.xml
> - faces-config.xml
> - jonas-web.xml
> - server-config.wsdd
>
> and the directory classes with compiled classes used in faces and the
> classes and the mappings for hibernate.
>
> This application works ok in Tomcat 5.5.17. With no problems. But I have
> to use JOnAS and when I try to call BIRT in JOnAS with:
>
> http://localhost:9000/birt-webapp/run?__format=pdf&__report=reports/prueba.rptdesign
>
> The application fails printing this trace:
>
> java.lang.NullPointerException
> at
> org.eclipse.birt.report.service.ReportEngineService.setEngineContext(Unknown
> Source)
> at
> org.eclipse.birt.report.service.BirtViewerReportService.setContext(Unknown
> Source)
> at
> org.eclipse.birt.report.servlet.BirtEngineServlet.__getContext(Unknown
> Source)
> at
> org.eclipse.birt.report.servlet.BaseReportEngineServlet.doGet(Unknown
> Source)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
> at
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
> at
> org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
> at
> org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:245)
> at
> org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:50)
> at
> org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:156)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:152)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at
> org.objectweb.jonas.web.catalina55.ResetAuthenticationValve.invoke(ResetAuthenticationValve.java:62)
> 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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> at java.lang.Thread.run(Thread.java:595)
>
> I tried several things for guessing what's happening here.
>
> I tested the application without using faces, deleting faces files in
> WEB-INF and faces libraries with NO result.
> I tested the application without hibernate, deleting hibernate files in
> WEB-INF and hibernate libraries with NO result.
>
> But when I test the application using only BIRT it works!!
>
> I think the problem is that BIRT+JSF+Hibernate cannot work in the same
> WAR.
>
> Here is my web.xml:
>
> <?xml version="1.0" encoding="utf-8"?>
>
> <!DOCTYPE web-app PUBLIC
> "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
> "http://java.sun.com/dtd/web-app_2_3.dtd">
>
> <web-app>
>
> <display-name>Eclipse BIRT Report Viewer</display-name>
>
> <context-param>
> <param-name>BIRT_VIEWER_LOCALE</param-name>
> <param-value>en-US</param-value>
> </context-param>
>
> <context-param>
> <param-name>BIRT_VIEWER_WORKING_FOLDER</param-name>
> <param-value></param-value>
> </context-param>
>
> <!-- If usr can only access the reprot under working folder. Default is
> true -->
> <context-param>
> <param-name>WORKING_FOLDER_ACCESS_ONLY</param-name>
> <param-value>false</param-value>
> </context-param>
>
> <!-- Absolute downloaded image/chart directory. Default to ${birt
> home}/report/images -->
> <context-param>
> <param-name>BIRT_VIEWER_IMAGE_DIR</param-name>
> <param-value></param-value>
> </context-param>
>
> <!-- Absolute engine log directory. Default to ${birt home}/logs -->
> <context-param>
> <param-name>BIRT_VIEWER_LOG_DIR</param-name>
> <param-value></param-value>
> </context-param>
>
> <!-- Report engine log level -->
> <context-param>
> <param-name>BIRT_VIEWER_LOG_LEVEL</param-name>
> <param-value>OFF</param-value>
> </context-param>
>
> <!-- Absolute directory to store all birt report script libraries (JARs).
> Default to ${birt home}/scriptlib -->
> <context-param>
> <param-name>BIRT_VIEWER_SCRIPTLIB_DIR</param-name>
> <param-value></param-value>
> </context-param>
>
> <!-- Absolute resource location directory. -->
> <context-param>
> <param-name>BIRT_RESOURCE_PATH</param-name>
> <param-value></param-value>
> </context-param>
>
> <!-- Preview report max rows limited. -->
> <context-param>
> <param-name>BIRT_VIEWER_MAX_ROWS</param-name>
> <param-value></param-value>
> </context-param>
>
> <context-param>
> <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
> <param-value>server</param-value>
> </context-param>
>
> <context-param>
> <param-name>org.apache.myfaces.COMPRESS_STATE_IN_SESSION</param-name>
> <param-value>false</param-value>
> </context-param>
>
> <context-param>
> <param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
> <param-value>false</param-value>
> </context-param>
>
> <context-param>
> <param-name>com.sun.faces.validateXml</param-name>
> <param-value>true</param-value>
> </context-param>
>
> <context-param>
> <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
> <param-value>true</param-value>
> <description>
> If true, a javascript function will be rendered that is able
> to restore the former vertical scroll on every request.
> Convenient feature if you have pages with long lists and you
> do not want the browser page to always jump to the top if
> you trigger a link or button action that stays on the same
> page. Default: "false"
> </description>
> </context-param>
>
> <context-param>
> <param-name>org.apache.myfaces.VALIDATE</param-name>
> <param-value>true</param-value>
> <description>
> Validate managed beans, navigation rules and ensure that
> forms are not nested.
> </description>
> </context-param>
>
> <!-- Extensions Filter -->
> <filter>
> <filter-name>extensionsFilter</filter-name>
> <filter-class>
> org.apache.myfaces.webapp.filter.ExtensionsFilter
> </filter-class>
> </filter>
>
> <filter-mapping>
> <filter-name>extensionsFilter</filter-name>
> <url-pattern>*.jsf</url-pattern>
> </filter-mapping>
>
> <filter-mapping>
> <filter-name>extensionsFilter</filter-name>
> <url-pattern>/faces/*</url-pattern>
> </filter-mapping>
>
>
>
> <!-- Viewer Servlet Context Listener -->
> <listener>
>
> <listener-class>org.eclipse.birt.report.listener.ViewerServletContextListener</listener-class>
> </listener>
>
> <!-- Listener, that does all the startup work (configuration, init). -->
> <listener>
> <listener-class>
> org.apache.myfaces.webapp.StartupServletContextListener
> </listener-class>
> </listener>
>
> <listener>
> <listener-class>
> com.example.core.InitServletContextListener
> </listener-class>
> </listener>
>
> <servlet>
> <servlet-name>ViewerServlet</servlet-name>
>
> <servlet-class>org.eclipse.birt.report.servlet.ViewerServlet</servlet-class>
> </servlet>
>
> <servlet>
> <servlet-name>EngineServlet</servlet-name>
>
> <servlet-class>org.eclipse.birt.report.servlet.BirtEngineServlet</servlet-class>
> </servlet>
>
> <!-- Faces Servlet -->
> <servlet>
> <servlet-name>Faces Servlet</servlet-name>
> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
> </servlet>
>
> <servlet-mapping>
> <servlet-name>ViewerServlet</servlet-name>
> <url-pattern>/frameset</url-pattern>
> </servlet-mapping>
>
> <servlet-mapping>
> <servlet-name>EngineServlet</servlet-name>
> <url-pattern>/run</url-pattern>
> </servlet-mapping>
>
> <servlet-mapping>
> <servlet-name>EngineServlet</servlet-name>
> <url-pattern>/download</url-pattern>
> </servlet-mapping>
>
> <servlet-mapping>
> <servlet-name>EngineServlet</servlet-name>
> <url-pattern>/parameter</url-pattern>
> </servlet-mapping>
>
> <!-- Faces Servlet Mapping -->
> <servlet-mapping>
> <servlet-name>Faces Servlet</servlet-name>
> <url-pattern>*.faces</url-pattern>
> </servlet-mapping>
>
> <servlet-mapping>
> <servlet-name>Faces Servlet</servlet-name>
> <url-pattern>*.jsf</url-pattern>
> </servlet-mapping>
>
> <resource-ref>
> <description>Connection to database</description>
> <res-ref-name>jdbc/DS</res-ref-name>
> <res-type>javax.sql.DataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>
>
> </web-app>
>
>
> Have you any idea about why is happening this?
>
> Thanks for reading.
>
>
>
>
--
View this message in context: http://www.nabble.com/BIRT-%2B-JSF-%2B-HIbernate-tf3765329.html#a10666114
Sent from the Eclipse BIRT - Dev mailing list archive at Nabble.com.