Has anyone successfully implemented the JSF Viewer with Facelets?

We have recently started integrating Crystal into one of our web apps that is using JSF + Facelets + Seam.
I've built a taglib for the jsf viewer and configured it in web.xml and faces-config. I'm pulling an IReportSource from a backing bean using com.crystaldecisions.reports.sdk.ReportClientDocument  and that is using a .rpt file stored on a directory. This all seems to be working, as I can step through the code and see the IReportSource being generated.
However, when the page loads, I am seeing the crystal javascript being converted in the page source, but nothing is loading on the page. 
Has anyone seen an issue similar to this tied to Facelets? I've seen numerous documentation on Crystal and JSP, but very little on JSF  or Facelets.
Has anyone been able to get a setup like this or similar to work properly?
I've also noticed an error when adding the viewer:
java.io.IOException: Recover report client document state failed.
at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.readExternal(SourceFile:1492)
at com.crystaldecisions.sdk.occa.report.application.AdvancedReportSource.readExternal(SourceFile:131)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
I believe this to be related to me switching over to the serializable ReportClientDocument: com.crystaldecisions.sdk.occa.report.application.ReportClientDocument  versus using the nonserializable version.
When using the non-serializable version, I am seeing a constructor issue with the JPEReportSource
Exception: java.io.InvalidClassException: com.crystaldecisions.reports.reportengineinterface.JPEReportSource; no valid constructor
Has anyone seen this issue before or able to offer any suggestions?

Well, according to the tutorials I have seen on the internet, I believe CrystalReport was successfully implemented and tested with jsp, to have it working with Facelets, we need to do a little bit of work around. We need to make a new JSF custom component and assign it to an external renderer. then we can use it to view the report
please follow these and it should work after then,
1- bring the following jars into your libs
commons-configuration-1.2.jar
Concurrent.jar
CrystalCommon.jar
CrystalContentModels.jar
CrystalDatabaseConnectors.jar
CrystalFormulas.jar
CrystalQueryEngine.jar
CrystalReportEngine.jar
CrystalReportingCommon.jar
icu4j.jar
jrcadapter.jar
jrcerom.jar
keycodeDecoder.jar
MetafileRenderer.jar
rasapp.jar
rascore.jar
rpoifs.jar
serialization.jar
URIUtil.jar
webreporting.jar
webreporting-jsf.jar
xercesImpl.jar
xml-apis.jar
2- bring the folder "crystalreportviewers115" right under the "WebContent".
3- implement the custom FacesComponent and make it extend the "UIReportPageViewer" as follows;
import packagename.CustomReportRenderer;
@FacesComponent ("packagename.newReportViewer")
public class UIReportViewer extends com.crystaldecisions.report.web.jsf.UIReportPageViewer implements Serializable{
    public UIReportViewer () {
        this.setRendererType("packagename.CustomReportRenderer");
4- implement the renderer and make it extend the "ViewerHtmlRenderer" as follows;
@FacesRenderer(componentFamily="CrystalReports.DHTMLViewer", rendererType="packagename.CustomReportRenderer")
public class CustomReportRenderer extends com.crystaldecisions.report.web.jsf.ViewerHtmlRenderer implements Serializable {
5- make a new tag library xml file next to the web.xml so the application can find the tag configurations. name it "taglib.xml" and add the following inside it;
<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee"
    version="2.0">
    <namespace>http://new-jsf-custom-components/</namespace>
    <tag>
        <tag-name>ReportViewer</tag-name>
        <component>
            <component-type>packagename.newReportViewer</component-type>
            <renderer-type>packagename.CustomReportRenderer</renderer-type>
        </component>
    </tag>
</facelet-taglib>
6- configure the web.xml with the following
  <context-param>
        <description>
        State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>
    <context-param>
          <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
        <param-value>/WEB-INF/taglib.xml</param-value>
    </context-param>
    <context-param>
        <param-name>crystal_image_uri</param-name>
        <param-value>../../crystalreportviewers115</param-value>
    </context-param>
7- implement the reportViewer.xhtml and make sure you have the following;
- in the tag libraries add the namespace schema xmlns:crystalnmcps="http://new-jsf-custom-components/"
- add the new reportViewer component
<crystalnmcps:ReportViewer reportSource="#{youController.reportSource}"  displayToolbarLogo="false" parameterFields="#{youController.parameterFields}"  allowParameterPrompting="false" />
Now run your app.
I hope this helps. good luck

Similar Messages

  • Has anyone successfully used the Zoom R16 with Audition?

    I’ve tried just about everything, but can’t seem to get Audition to run with the Zoom R16.  As noted in a recent post, I updated both the Zoom R16 firmware and widows driver, but that doesn’t seem to make the 2 work harmoniously. 
    Has anyone had success getting the 2 to work together?  If so, what’s the trick?!
    Thanks in advance
    C

    CharlestonPro wrote:
    As noted in a recent post, I updated both the Zoom R16 firmware and widows driver, but that doesn’t seem to make the 2 work harmoniously.
    I'm intrigued - what is actually disharmonious?

  • Has anyone successfully used the Intuit Quicken compatible with Lion upgrade for investment tracking?

    Has anyone successfully used the Intuit Quicken compatible with Lion upgrade for investment tracking?

    Although I gave up investment tracking for personal reasons (I had used Quicken Deluxe 2002 for many years for that reason), my understanding is that the new Quicken 2007 for Lion/Mt. Lion is completely the same feature wise as Quicken 2007 for PPC.  It will run on Snow Leopard, too.
    For $15, why not download it and just try it and LET US KNOW!

  • Has anyone successfully used the ZTE Open C with an AT&T microcell?

    I have a ZTE Open C and have had no issues with initial setup w/AT&T. However, like most newer phones the voice signal reception is very weak.
    I've had an AT&T Microcell before, but I don't have one now. For those that are unaware, the microcell allows 3G phones to connect via a 3G signal, but the call is routed through a home broadband internet connection.
    Has anyone successfully used a ZTE Open C w/Firefox OS AND used an AT&T microcell? If yes, did you need to do anything special on the phone or with Firefox OS.

    I don't use a ZTE Open C, however, I do have a ZTE Open (Original) on AT&T and so I'll see if I can help ;D
    I know someone who has a Microcell, and I have used it myself a few times. However, the microcell only works if you have entered in your phone number into settings of the Microcell.
    Check the Microcell settings.
    Check the data connection settings on your FxOS device
    Make sure your Microcell is properly connected to WiFi
    and check the AT&T support page for more info
    For a while, it actually hasn't actually worked for me. I apologize if this doesn't solve your problem :D

  • Has anyone else had the day view crash calendar in iOS 7.1 on iPad Air?

    I recently updated to iOS 7.1 on my iPad Air (128 GB cellular). When I go to the calendar app and select the new "Day" view, the calendar app crashes.
    I have iCloud calendar and two Google calendars syncing with the device. When I disable all calendars from syncing, I no longer experience a crash in the "Day" view.
    Has anyone else had similar experiences?
    Thanks,
    Fyzel

    Switching to day view doesn't crash calendar but I can't launch the calendar app in iOS 7.1 (on my iPad 2) if synch is in and it was last in day view. It crashes on launch.

  • Has anyone successfully tethered a Nikon D7000 with Aperture 3.1?

    Hi,
    I have a new Nikon D7000 and tried to tether it to Aperture 3.1. Aperture recognizes it as a D7000, but I can't get an image to display. I'm outputting JPEG right now and can wait until RAW is available, but it would be convenient to tether so I can get immediate feedback on the image while I'm shooting.
    Has anyone had success tethering the D7000 with Aperture 3 or is the software not there yet? I'm talking about having the image immediately downloaded to the iMac and automatically displayed after you take each photo, not downloading at the end of the day.
    Thanks

    UPdate - the key was opening a new project in Aperture 3. Once I did that, Aperture recognized the D7000 and I could shoot from the camera and have it displayed immediately on the iMac.
    It works right out of the box. Yea!!!
    Message was edited by: luckyphoto2010

  • Has anyone successfully used the serial-over-lan feature in ipmitool?

    The IPMI hardware in Apple's Intel Xserves ostensibly supports serial-over-LAN access via ipmitool. Attempting to access it with ipmitool doesn't appear to work, however; the command
    ipmitool -H hostname -U username sol activate
    simply returns without entering a serial session. I am able to perform other queries on the same interface with ipmitool, however. Is there some setting that I must enable in order to permit the above command to succeed?

    I have version 2.0.2 installed. The firmware is not up to date (its boot ROM is at version XS11.0080.B01); however, I never was able to figure out how to update it (see http://discussions.apple.com/thread.jspa?threadID=1569860&tstart=0). Querying the bmc info with ipmitool does work; it reports firmware revision 1.2.8. No manual changes were made within /dev to my knowledge.

  • Has anyone successfully used new custom templates with bookings?

    I have been trying to use an alternate list template for bookings as a fallback for the standard list I have which is outputting json.
    I saw recently in the september release that custom templates are out (thank goodness).
    I have tried:
    {module_booking,a template="fallback_list.tpl"}
    {module, booking,a template="fallback_list.tpl"}
    This is from http://helpx.adobe.com/business-catalyst/partner/using-custom-templates-modules.html it looks wrong to me.
    Then I tried renaming it to html cause I read http://forums.adobe.com/docs/DOC-2573
    Then I tried relocating it, removing the underscore, adding commas, removing commas, single quotes and double quotes.
    But they all return No events found.
    {module_booking,a, }
    Returns the expected amount of bookings.
    Any thoughts?

    Hi,
    Thanks Mario.  http://npaqueensland.businesscatalyst.com/events
    The events done with backbone and JSON are working, above those there is a bar of filters (not yet hooked up properly), and directly above those filters is the part I am having an issue with.
    Thanks,
    Allan.

  • Has anyone successfully implemented a drop shipping eCommerce solution with MULTIPLE suppliers?

    Hi there
    I have read a few BC forum articles on this subject, but none seem to have clarified whether a drop shipping eCommerce solution with MULTIPLE suppliers can truly be implemented successfully in BC.
    In particluar, my concern is with splitting up ONE online order with products from MULTIPLE suppliers ... and split up the order into its individual supplier components and thereby calculate freight costs for each of the suppliers i.e. the freight cost should really be calculated for each of the suppliers SEPERATELY and not for the order as a whole.
    Forum post http://forums.adobe.com/message/4881302#4881302 addresses this issue and Liam Dilley [as always] kindly responded. But his response indicates this is not possible with BC.
    If this is the case, drop shipping in BC is quite useless unless:
    1. you had only one supplier
    2. or, you somehow restricted each order placed to products from only one supplier - which I am unsure is even possible even with JQuery
    Any feedback from the community would be most appreciated.
    Regards
    Gavin

    You have two requirements:
    1. Once ordered, split the order into suppliers, contact the supplier of the product, give the information of the order to the customer. Supplier ships it. This could be done manually but a pain in the ***. I would assume you want it automated.
    2. When ordering, multiple products require mutliple shipping rates. As the shipping from location could be different for each product you can't just use the ship from one location option.
    Solutions:
    1. This is the easier one, you record the supplier in the product via a form or in the product item itself. If you wanted to automate here you could via API, if you wanted to do it manually you also could.
    2. Shipping calulator, to make things easier you would have to do everything by weight. Use Javascript to remove the default shipping option on the checkout page, pass all the items in the shopping cart. Use a lookup table function in Javascript "item name to weight" then have another function item to (from) shipping location. Work out the shipping and display it and force change with Javascript BC's shipping price (so the customer pays the correct amount).
    Like Liam says, it's not something BC does too well at the moment and the above solution is more of a workaround but does work.

  • Has anyone really understood the JSF LifeCycle

    I have created my own phase listener :
    public class MyPhaseListner implements PhaseListener {
    public void afterPhase(PhaseEvent evt) {
    System.out.println("EXITING : " + evt.getPhaseId());
    public void beforePhase(PhaseEvent evt) {      
    System.out.println("ENTERING : " + evt.getPhaseId());
    public PhaseId getPhaseId() {
    return PhaseId.ANY_PHASE;
    When i display my page first time I am getting the following output :
    ENTERING : RESTORE_VIEW 1
    EXITING : RESTORE_VIEW 1
    ENTERING : RENDER_RESPONSE 6
    Inside Constructor
    Managed Bean Created.......
    Thank you !!!!
    EXITING : RENDER_RESPONSE 6
    ENTERING : RESTORE_VIEW 1
    EXITING : RESTORE_VIEW 1
    ENTERING : RENDER_RESPONSE 6
    EXITING : RENDER_RESPONSE 6
    ENTERING : RESTORE_VIEW 1
    EXITING : RESTORE_VIEW 1
    ENTERING : RENDER_RESPONSE 6
    ENTERING : RESTORE_VIEW 1
    EXITING : RESTORE_VIEW 1
    ENTERING : RENDER_RESPONSE 6
    EXITING : RENDER_RESPONSE 6
    EXITING : RENDER_RESPONSE 6
    As per my knowledge I can understand first 4 statements(before "*****") outputted.
    An empty view is created and then render response phase is reached skipping all intermediate steps being the first request to JSF page.
    However I can not understand further calls made by JSF lifecycle.
    Can anyone elaborate me more on this?
    Also I am very much interested in some strange number displayed after every phaseId !!!!!

    Hi Sergy !
    Thanks for your reply.!!!!
    Well actually I have some style-sheets and images on my page.
    I think JSF even treats these elements to be a seapare entity.
    So all other statements were for these elements.
    Well I have modified my phase Listener to reflect the view Id as well.
    Below is the class...if anyone is interested !!!
    package util;
    import javax.faces.component.UIViewRoot;
    import javax.faces.event.PhaseEvent;
    import javax.faces.event.PhaseId;
    import javax.faces.event.PhaseListener;
    public class MyPhaseListner implements PhaseListener {
         public void afterPhase(PhaseEvent evt) {
         UIViewRoot root = evt.getFacesContext().getViewRoot();
         if(root == null){
              System.out.println("EXITING : " + evt.getPhaseId());
         }else{
              System.out.println("EXITING : " + evt.getPhaseId() + root.getViewId());
         public void beforePhase(PhaseEvent evt) {
              UIViewRoot root = evt.getFacesContext().getViewRoot();
              if(root != null){
                   System.out.println("ENTERING : " + evt.getPhaseId() + root.getViewId());
              }else{
                   System.out.println("ENTERING : " + evt.getPhaseId());
         public PhaseId getPhaseId() {
              return PhaseId.ANY_PHASE;
    }

  • Has anyone successfully downloaded the latest 2.40-WIN BIOS for the P100-188?

    The reason I ask is because when I try to download the file it keeps coming up empty, I'm not comfortable with updating using the traditional method, as it seems more things can go wrong during the process, and Toshiba recommends using the windows method anyway.
    I don't understand it, the graphics driver they have listed as the latest version for my machine is 8.3.2.0, the one on my machine is 8.4.0.0, numbering convention states the version I have installed is the latest, so how come the 8.3 version is listed?
    Plus when you download a new driver or BIOS they don't give any details on what issues the update fixes or addresses, are they hiding this information from us or just assuming we're all psychic?
    Now they seem to be posting blank files as well, I know we are all human and we all make mistakes but is anybody working for this website paying attention? I sent an email to ForumModeration on the 17th of October about not being able to post as it was coming up as "profanity or inappropriate language" even though the offending piece of text was a link to a web page! 9 days later I'm still waiting on an answer, or even an acknowledgement.
    I'm sorry for ranting on a bit but I can't help feeling it would be easier to get blood from a stone than a information from anyone.

    Hi
    Strange. View min ago I have tried to download the BIOS 2.4WIN but I was not able to unzip this folder. I think there must be a zip error. Possibly it will be fixed in the netx couple of days. Lets hope
    Anyway, I have also looked for some additional information about BIOS update and release details but it seems there are no further informations about BIOS changes.
    But if you click on the option more info to the right of every update you will find some descriptions. You will also find Toshiba BIOS-Update Description.
    I think you should read this document before starting any BIOS updates.
    I get also the profanity or inappropriate language message and I assume it happens because of the word filtering which check the message before it will be post in the forum.
    Sometimes its a little bit annoying because I have to change the text but I can live with them. B-) be cool

  • HAs anyone successfully loaded the Easy Photo Print Pro plug-in into Photoshop CC? If so, how?

    I've tried to load it several times and keep getting a message saying the a compatible version of Photoshop has not been loaded. I've seen this question elsewhere, but without any answers. Does anyone know 1. If the two programs are incompatible, 2. If so, is either Canon or Adobe planning to make them compatible?
    Solved!
    Go to Solution.

    ebiggs1 wrote:
    "I was trying to do a borderless print from either LR 5.X or PS CC, forget which right now."
    I would bet it was LR.  LR print settings are confusing but you should have no problem with PS.  However, LR will do what you want without any add-ins like EPP.  How versed are you in the use of LR?  You probably need to bone up on how to set it up to print.  Are you going to 'Page Setup' on the left side of the screen first?  You should.
    Moderately capable with LR. However, haven't printed that much.  I remember having some trouble with
    it when I last tried. 
    I'll mess with it in the next couple of days and see how it goes.  I'll also try to read up on it at the same time.
    Thanks.

  • Has anyone else had the same problem with SYSMAN password resetting?

    I am a Oracle Support Administrator and have posted a SR with Metalink and just wanted to ask the community if they have had any of the same problems.
    I am remotely accessing a customers Grid Control via VMWare software and over the past couple of weeks I have been trying to access GC with the Sysman user. The password seems to be either resetting itself or there is a bug in the system. I have checked to see if there is a expiration script running or something similar with no result. It is definitely being altered somehow at the Grid Con end of things. I checked to see if it was resetting in the emon.properties file in the oracle home, this was not the case. So am really stuck.
    I have to change the password via SQL+ for it to come back online.
    Any ideas or suggestions would be grateful .
    Thanks all.

    just follow this....
    http://download.oracle.com/docs/cd/B16240_01/doc/em.102/e10954/repository.htm#sthref807
    9.2 Changing the SYSMAN Password
    The SYSMAN account is the default super user account used to set up and administer Enterprise Manager. It is also the database account that owns the objects stored in the Oracle Management Repository. From this account, you can set up additional administrator accounts and set up Enterprise Manager for use in your organization.
    The SYSMAN account is created automatically in the Management Repository database during the Enterprise Manager installation. You also provide a password for the SYSMAN account during the installation.
    See Also:
    Oracle Enterprise Manager Grid Control Installation and Basic Configuration for information about installing Enterprise Manager
    If you later need to change the SYSMAN database account password, use the following procedure:
    Shut down all the Oracle Management Service instances that are associated with the Management Repository.
    See Also:
    "Controlling the Oracle Management Service"
    Change the password of the SYSMAN database account using the following SQL*Plus commands:
    SQL>connect sysman/oldpassword;
    SQL>alter user sysman identified by newpassword;
    For each Management Service associated with the Management Repository, locate the emoms.properties configuration file.
    The emoms.properties file can be found in the following directory of the Oracle Application Server Home where the Oracle Management Service is installed and deployed:
    IAS_HOME/sysman/config/
    Locate the following entries in the emoms.properties file:
    oracle.sysman.eml.mntr.emdRepPwd=ece067ffc15edc4f
    oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE
    Enter your new password in the first entry and enter FALSE in the second entry.
    For example:
    oracle.sysman.eml.mntr.emdRepPwd=new_password
    oracle.sysman.eml.mntr.emdRepPwdEncrypted=FALSE
    Save and exit the emoms.properties file and restart each Management Service associated with the Management Repository.
    In the Grid Control console, click the Targets tab and then click All Targets on the sub tab.
    Select the Management Services and Repository target and click Configure. Enterprise Manager displays the Monitoring Configurations page.
    Enter the new password in the Repository password field and click OK.
    See Also:
    "Specifying New Target Monitoring Credentials"
    After the Management Service has started, you can check the contents of the emoms.properties file to be sure the password you entered has been encrypted.
    For example, the entries should appear as follows:
    oracle.sysman.eml.mntr.emdRepPwd=ece067ffc15edc4f
    oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE

  • Has anyone successfully integrated online product inventory with MYOB Retail Manager

    I have a customer who wants to manage her online product inventory via her shops MYOB Retail Manager program. Does anyone know if this has been done yet?

    Not used it before but according to their information
    http://www.onesaas.com/integrations/view-all
    Can sync between MYOB and BC, for a price per month.
    If you are looking for your own solution without relying on a 3rd party or monthly fees, I would have no problems developing a syncing system, drop me a private message if you are interested.

  • Has anyone successfully implemented fetching more than one row at a time?

    I ask, since I'm having problems even with the simplest of scenarios. I went all the way back to the sample code given in the documentation (listed below) and it doesn't even work! I throws a data truncated exception on the employee number (even though the field is only 4 digits!) Help?
    int empno[5];
    char ename[5][11];
    ub2 enameLen[5];
    ResultSet *resultSet = stmt->executeQuery("select empno, ename from emp");
    resultSet->setDataBuffer(1, &empno, OCCIINT);
    resultSet->setDataBuffer(2, ename, OCCI_SQLT_STR, sizeof(ename[0]), enameLen);
    rs->next(5); // throws ORA-01406!

    pass the size of the number field too.
    resultSet->setDataBuffer(1, empno, OCCIINT, sizeof(empno[0]));
    ...

Maybe you are looking for

  • How to log in to SAP MII by using a custom xApp?

    Hi there, I'm developing a custom xApp with a context root of /mycustomapp I use some security contraints for it so the user has to log in to view the xApp. As I use some MII services the user has to be logged in to SAP MII, too. However, logging in

  • Ichat to PC using AOL

    I have been successful ichatting to another mac using AOL however when I try to ichat with a PC running Vista from the same location I do not receive any audio or video, I can IM..any suggestions.

  • Not able to connect to other system

    Hi All, Currently have two Solaris 10 servers connected via a dumb Hub. I'm unable to ping either box but they can ping themselves. I have double checked physical connections and the following files; /etc/hosts - verified that all devices are listed

  • Invoke BPEL from EO level

    Is there any other way to invoke a BPEL Process from EO level other than using Business Events and Mediator?

  • How Much To Replace The Back Of An iPhone 4s?

    I dropped my phone and unfortunately the back now has two cracks across the back. I was wondering how much it would cost for apple to replace the back of it?