JSP Enum warn disabling

          Is there any way of disabling the following error message when starting weblogic?
          [JSPEnum] no match: 'META-INF/'
          [JSPEnum] no match: 'images/'
          [JSPEnum] no match: 'WEB-INF/'
          [JSPEnum] no match: 'WEB-INF/classes/'
          [JSPEnum] no match: 'WEB-INF/classes/com/'
          This is all the information I can find on the net:
          When the server is restarted, each resource in the the web application is checked
          to see if it needs to be compiled. The server console will log a message for each
          file compiled. Ignore any [JSP Enum] no match messages. These are displayed for
          files that do not match the .jsp file extension
          

refresh
Can someone give me any insight into this issue - possible workarounds etc. ??? Maybe Juan Oropeza or Robert Hoexter?
TIA, Simon Cullen

Similar Messages

  • Low ink warning disable 6700 all in one

    I would like to know how to disable the low ink warning which comes on everytime I print. I would like the printer to stop keeping track of ink levels. I have a MAC if that makes a differance. 

    Hi @uhg,
    Welcome to the HP Forums!
    I see that you want to disable the low ink warnings on your HP Officejet 6700, and I am happy to help!
    Please see this post, Re: HP Photosmart pop up windows, by my colleague @Sunshyn2005.
    Hope these are the settings you are looking for, and thank you for posting!   
    RnRMusicMan
    I work on behalf of HP
    Please click “Accept as Solution ” if you feel my post solved your issue, it will help others find the solution.
    Click the “Kudos Thumbs Up" to say “Thanks” for helping!

  • JSP classes warning:

    I have a webroot/WEB-INF/jsp directory with my jsps. When I compile I get the following warning for all my jsps:
    Warning: package name web2d_inf._jsps does not match source file name C:\CVSHome\Orion\jdev\registration\regView\classes\.jsps\_WEB_2d_INF\_jsps\_testname.java
    I am using JDev 9.03x

    I've had the same problem. I'm interested in this on too.

  • Invalid JSP editor warning

    The following JSP will produce the following warning:
    The attribute value tag "c:choose" should end with "/>".
    ================ badWarning.jsp ===============
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
    <!-- The problem appears to be related to the choose tag being inside the span tag -->
    <span class='<c:choose><c:when test="true"> even </c:when><c:otherwise> odd </c:otherwise></c:choose>' >
    some text
    </span>
    ==========================================

    Thanks for the catch, this will be fixed for the final 2.0 release, later this month.
    In the mean time, an alternative (simpler?) way is:
    <span class='${test ? "even" : "odd"}'>
    some text
    </span>

  • Activex enums and disabled methods

    I am relatively new to using Labview for accessing COM objects. I am trying to use Labview to access an SDK library for controlling a USB ultrasound machine. I am having a couple of problems that I am not sure if I can get around and would appreciate any help.
    Firstly, I am having accessing tagged enums which are inputs to methods. This works for some inputs, where the enums are sequential (SCAN_STATE_STOP = 0, SCAN_STATE_ACQUIRE = 1, SCAN_STATE_FREEZE = 2,SCAN_STATE_RUN = 3). When I right click on the input and right click, the appropriate enum list shows. But this does not work for others that are not sequential (e.g. SCAN_MODE_UNKNOWN = 0,SCAN_MODE_B = 1,SCAN_MODE_M = 2,SCAN_MODE_PW = 4,SCAN_MODE_BPW = 7 etc). Is there a way of being able to access these? By just defining the integer value, I seem to be getting errors in some methods (but not all). 
    I am also having a problem in that one of the methods of the a specfic class is greyed out and disabled (GetControlObj). The input for this method is 'System.Guid@ riidCtrl', System.UInt32 ScanMode and System.UInt32 streamId. I suspect that the problem is that Labview cannot interfacece GUID object that needs to be input. Is this correct? Is there any way around this?
    Regards,
    Glen 

    Litch09 wrote:
    I am sorry if my lingo is not up to speed, I have no formal programming training!
    Neither have I, and that's never stopped me... (My "formal training" is as an electrical engineer! )
    What you are seeing is behavior by design. Whether or not it's correct is debatable. LabVIEW enums are always consecutive. If you want to use a dropdown that has a text label with non-consecutive values then you can make a ring constant. Unfortunately, you have to do this manually. Basically, you're wanting to create a "sparse enum".If you do search for "spase enum" you'll find some information. A while ago JeanPierre wrote a tool to create an enum typedef and a lookup VI to conver the enum to the sparse value. 

  • JSP validation warning.

    empty

    Does this happen in the course of just modifying JSPs and resource files, or
    when a resource file is added or refactored?
    It would be great if you can provide us with the steps you follow to
    experience this problem.
    M7 Support
    PS: Sending requests to [email protected] usually has faster response time.
    "DanBar" <[email protected]> wrote in message news:[email protected]..
    DanBar wrote:There' a bug(?) causing Nitrox (build225) to report warnings like that:
    I've tried build 226 - nothing's changed.
    DanBar

  • Two managed beans in same jsp page

    Hello
    First this could be a stupid question, but i just can't find a solutions on this problem.
    I wondering that could it be a two managed beans in same jsp page, here is a example:
    index.jsp
    <t:commandLink disabled="#{listBean.currentPage == 1}" id="previous2" type="button" immediate="true" style="font-size:small" action="#{listBean.previousPage}">
    <h:outputText value="Edellinen" id="prev"/>
    </t:commandLink>
    <t:commandLink disabled="#{listBean.currentPage == listBean.totalPages}" id="next2" type="button" immediate="true" style="font-size:small;" action="#{listBean.nextPage}">
    <h:outputText value="Seuraava" id="next"/>
    </t:commandLink>
    then i have a dataTable like this:
    <t:dataTable value="#{customerListBean.customerBeans}"
    binding="#{customerListBean.dataTable}" preserveDataModel="true" style="text-align:left">
    My problem is that when i push a commandLink it doesn't refresh a dataTable. Does anyone know a solution here or is this just a impossible way to do it?
    Thanks for help.

    when i push nextPage (commandLink) it's call action
    and count a new range of dataset and after that it's
    calls a method which is declared on subClass and that
    method get a new data of database on given params.
    and put it on DataTable.
    So listBean is upper class and customerListBean
    extends on ListBeanNo, it doesn't work that way as you expected. You have created two independent instances. They doesn't communicate automatically with each other or so. Just use one CustomerListBean instance and call the inherited methods of ListBean on the #{customerListBean} managed bean instance.

  • Save As in JSP editor

    The File -> Save As in the JSP Editor is disabled. Any clue why?

    Here are a few resources that might help:
    http://developer.java.sun.com/developer/technicalArticles/Intl/MultilingualJSP/
    http://www.sun.com/developers/gadc/technicalpublications/articles/iws6.html
    http://www.sun.com/developers/gadc/technicalpublications/articles/apache.html
    Hope this helps,
    John O'Conner

  • Why does DISABLED disable a SCREEN RECTANGLE instead of just the control?

    I have solved this problem, but wanted to post it here for discussion.
    LabVIEW 7.0, Windows.
    I have a cluster: Item 0 is a custom enum control, item 1 is a string control.
    Under certain conditions in my program, the string field must be disabled (and grayed out), because it's not applicable.
    When I did that, I found that the enum was disabled as well. Actually, it would sometimes work if I hit the up-arrow just right, but the menu would never pop up. It worked find if the string was enabled.
    The string field (item 1) had a label above the left side of it. The enum (item 0) was positioned immediately above the right side of it.
    So why was item 0 disabled if item 1 was? I verified that the DISABLED property was NOT getting set to disabled (it reported 0 when I read it). There were no other property nodes to item 0.
    As it turns out, it seems that when the string was disabled, there was a RECTANGLE on screen which was disabled. In spite of the fact that neither the string field not its label overlapped the enum, the fact that the enum was within the string's RECTANGLE was disabling it. The fact that the enum's up-arrow extended above this rectangle is what made it work if I hit it just right (the top 1 or two pixels, i guess). I found this out by moving the enum off to the right (out from under this rectangle.
    My eventual solution was to go to the typedef for this cluster and move the enum IN FRONT of the string. I did not change the cluster order, just the physical front-to-back ordering. Now it works, with the enum back where I wanted it in the first place.
    I have attached a VI which demonstrates this. I tested it on LV 7.1 / OSX and it still fails. Not sure if it's a bug, or intended behavior.
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks
    Attachments:
    BugTest.vi ‏34 KB

    I would say this is most probably optimation. While you can of course escalate a user event message all the way down to any of the lowest controls only to see in most cases that the control did not care about this message for whatever reasons, this adds significant delay to the event handling. So having the top level control (cluster) do a quick and dirty rectangular check to see which control should receive the message if any and only passing it to that control speeds things up significantly.
    Doing anything but a rectangular area check is again a performance problem as well as a never ending story of special cases which need to be handled just this tiny bit different to the rest, and any modification for a particular situation has often several undesired consequences for other cases.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Disable keycombinations in java?

    Hi!
    I wonder if you can disable keycombinations in java?
    When you press CTRL+ALT+DELETE i want it to NOT display taskmanager.
    Thanks!

    http://onesearch.sun.com/search/onesearch/index.jsp?qt=disable+ctrl+alt+del&subCat=siteforumid%3Ajava31&site=dev&dftab=siteforumid%3Ajava31&chooseCat=javaall&col=developer-forums

  • ParserUtils: warning org.xml.sax.SAXParseException

    Hi, I am trying to deploy the samples from JSF_BETA. to Borland Enterprise Server(which uses Tomcat as a web-container), The "guessnumber" sample works absolutely fine but the "components" sample throws up the following error: Please note that all the samples from previous JSF versions work fine.
    "menu.jsp": ParserUtils: warning org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration.
    error:This absolute uri (http://java.sun.com/jsf/demo/components) cannot be resolved in either web.xml or the jar files deployed with this application
    C:\j2sdk1.4.2_01\bin\java -classpath "C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\ant.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-common.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-factory.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-resources.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;F:\WORK\JSF10BETA\temp4\classes;C:\Program Files\Borland\BES\lib\asrt.jar;C:\Program Files\Borland\BES\lib\lm.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;C:\Program Files\Borland\BES\lib\vbjorb.jar;C:\Program Files\Borland\BES\lib\vbejb.jar;C:\Program Files\Borland\BES\lib\vbsec.jar;C:\Program Files\Borland\BES\lib\beandt.jar;C:\Program Files\Borland\BES\lib\dx.jar;C:\Program Files\Borland\BES\lib\axis\axis-bes.jar;C:\Program Files\Borland\BES\lib\axis\axis-ant.jar;C:\Program Files\Borland\BES\SonicMQ\lib\sonic_Client.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-beanutils.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-collections.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-digester.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-logging.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-api.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-impl.jar;F:\WORK\JSF10BETA\temp5\libraries\jstl.jar;F:\WORK\JSF10BETA\temp5\libraries\standard.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\j2sdk1.4.2_01\demo\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\jre\javaws\javaws.jar;C:\j2sdk1.4.2_01\jre\lib\charsets.jar;C:\j2sdk1.4.2_01\jre\lib\ext\dnsns.jar;C:\j2sdk1.4.2_01\jre\lib\ext\ldapsec.jar;C:\j2sdk1.4.2_01\jre\lib\ext\localedata.jar;C:\j2sdk1.4.2_01\jre\lib\ext\sunjce_provider.jar;C:\j2sdk1.4.2_01\jre\lib\im\indicim.jar;C:\j2sdk1.4.2_01\jre\lib\im\thaiim.jar;C:\j2sdk1.4.2_01\jre\lib\jce.jar;C:\j2sdk1.4.2_01\jre\lib\jsse.jar;C:\j2sdk1.4.2_01\jre\lib\plugin.jar;C:\j2sdk1.4.2_01\jre\lib\rt.jar;C:\j2sdk1.4.2_01\jre\lib\sunrsasign.jar;C:\j2sdk1.4.2_01\lib\dt.jar;C:\j2sdk1.4.2_01\lib\htmlconverter.jar;C:\j2sdk1.4.2_01\lib\tools.jar" org.apache.jasper.JspC -d "F:/WORK/JSF10BETA/temp4/classes/Temporary_Files/.jsp/temp4app" -p "" -c menu_0002ejsp_jsp -uriroot "F:/WORK/JSF10BETA/temp4/temp4app" "F:/WORK/JSF10BETA/temp4/temp4app/menu.jsp"
    "menu.jsp": Invocation Error
    "index.jsp": ParserUtils: warning org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration.
    "ShowSource.jsp": ParserUtils: warning org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration.
    error:This absolute uri (http://java.sun.com/jstl/core) cannot be resolved in either web.xml or the jar files deployed with this application
    C:\j2sdk1.4.2_01\bin\java -classpath "C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\ant.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-common.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-factory.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-resources.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;F:\WORK\JSF10BETA\temp4\classes;C:\Program Files\Borland\BES\lib\asrt.jar;C:\Program Files\Borland\BES\lib\lm.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;C:\Program Files\Borland\BES\lib\vbjorb.jar;C:\Program Files\Borland\BES\lib\vbejb.jar;C:\Program Files\Borland\BES\lib\vbsec.jar;C:\Program Files\Borland\BES\lib\beandt.jar;C:\Program Files\Borland\BES\lib\dx.jar;C:\Program Files\Borland\BES\lib\axis\axis-bes.jar;C:\Program Files\Borland\BES\lib\axis\axis-ant.jar;C:\Program Files\Borland\BES\SonicMQ\lib\sonic_Client.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-beanutils.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-collections.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-digester.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-logging.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-api.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-impl.jar;F:\WORK\JSF10BETA\temp5\libraries\jstl.jar;F:\WORK\JSF10BETA\temp5\libraries\standard.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\j2sdk1.4.2_01\demo\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\jre\javaws\javaws.jar;C:\j2sdk1.4.2_01\jre\lib\charsets.jar;C:\j2sdk1.4.2_01\jre\lib\ext\dnsns.jar;C:\j2sdk1.4.2_01\jre\lib\ext\ldapsec.jar;C:\j2sdk1.4.2_01\jre\lib\ext\localedata.jar;C:\j2sdk1.4.2_01\jre\lib\ext\sunjce_provider.jar;C:\j2sdk1.4.2_01\jre\lib\im\indicim.jar;C:\j2sdk1.4.2_01\jre\lib\im\thaiim.jar;C:\j2sdk1.4.2_01\jre\lib\jce.jar;C:\j2sdk1.4.2_01\jre\lib\jsse.jar;C:\j2sdk1.4.2_01\jre\lib\plugin.jar;C:\j2sdk1.4.2_01\jre\lib\rt.jar;C:\j2sdk1.4.2_01\jre\lib\sunrsasign.jar;C:\j2sdk1.4.2_01\lib\dt.jar;C:\j2sdk1.4.2_01\lib\htmlconverter.jar;C:\j2sdk1.4.2_01\lib\tools.jar" org.apache.jasper.JspC -d "F:/WORK/JSF10BETA/temp4/classes/Temporary_Files/.jsp/temp4app" -p "" -c ShowSource_0002ejsp_jsp -uriroot "F:/WORK/JSF10BETA/temp4/temp4app" "F:/WORK/JSF10BETA/temp4/temp4app/ShowSource.jsp"
    "ShowSource.jsp": Invocation Error
    "tabbedpanes3.jsp": ParserUtils: warning org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration.
    "demo-test.jsp": ParserUtils: warning org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration.
    "repeater.jsp": ParserUtils: warning org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration.
    error:This absolute uri (http://java.sun.com/jstl/core) cannot be resolved in either web.xml or the jar files deployed with this application
    C:\j2sdk1.4.2_01\bin\java -classpath "C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\ant.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-common.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-factory.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-resources.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;F:\WORK\JSF10BETA\temp4\classes;C:\Program Files\Borland\BES\lib\asrt.jar;C:\Program Files\Borland\BES\lib\lm.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;C:\Program Files\Borland\BES\lib\vbjorb.jar;C:\Program Files\Borland\BES\lib\vbejb.jar;C:\Program Files\Borland\BES\lib\vbsec.jar;C:\Program Files\Borland\BES\lib\beandt.jar;C:\Program Files\Borland\BES\lib\dx.jar;C:\Program Files\Borland\BES\lib\axis\axis-bes.jar;C:\Program Files\Borland\BES\lib\axis\axis-ant.jar;C:\Program Files\Borland\BES\SonicMQ\lib\sonic_Client.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-beanutils.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-collections.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-digester.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-logging.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-api.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-impl.jar;F:\WORK\JSF10BETA\temp5\libraries\jstl.jar;F:\WORK\JSF10BETA\temp5\libraries\standard.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\j2sdk1.4.2_01\demo\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\jre\javaws\javaws.jar;C:\j2sdk1.4.2_01\jre\lib\charsets.jar;C:\j2sdk1.4.2_01\jre\lib\ext\dnsns.jar;C:\j2sdk1.4.2_01\jre\lib\ext\ldapsec.jar;C:\j2sdk1.4.2_01\jre\lib\ext\localedata.jar;C:\j2sdk1.4.2_01\jre\lib\ext\sunjce_provider.jar;C:\j2sdk1.4.2_01\jre\lib\im\indicim.jar;C:\j2sdk1.4.2_01\jre\lib\im\thaiim.jar;C:\j2sdk1.4.2_01\jre\lib\jce.jar;C:\j2sdk1.4.2_01\jre\lib\jsse.jar;C:\j2sdk1.4.2_01\jre\lib\plugin.jar;C:\j2sdk1.4.2_01\jre\lib\rt.jar;C:\j2sdk1.4.2_01\jre\lib\sunrsasign.jar;C:\j2sdk1.4.2_01\lib\dt.jar;C:\j2sdk1.4.2_01\lib\htmlconverter.jar;C:\j2sdk1.4.2_01\lib\tools.jar" org.apache.jasper.JspC -d "F:/WORK/JSF10BETA/temp4/classes/Temporary_Files/.jsp/temp4app" -p "" -c repeater_0002ejsp_jsp -uriroot "F:/WORK/JSF10BETA/temp4/temp4app" "F:/WORK/JSF10BETA/temp4/temp4app/repeater.jsp"
    "repeater.jsp": Invocation Error
    "result-set.jsp": ParserUtils: warning org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration.
    error:This absolute uri (http://java.sun.com/jsf/demo/components) cannot be resolved in either web.xml or the jar files deployed with this application
    C:\j2sdk1.4.2_01\bin\java -classpath "C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\ant.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-common.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-factory.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-resources.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;F:\WORK\JSF10BETA\temp4\classes;C:\Program Files\Borland\BES\lib\asrt.jar;C:\Program Files\Borland\BES\lib\lm.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;C:\Program Files\Borland\BES\lib\vbjorb.jar;C:\Program Files\Borland\BES\lib\vbejb.jar;C:\Program Files\Borland\BES\lib\vbsec.jar;C:\Program Files\Borland\BES\lib\beandt.jar;C:\Program Files\Borland\BES\lib\dx.jar;C:\Program Files\Borland\BES\lib\axis\axis-bes.jar;C:\Program Files\Borland\BES\lib\axis\axis-ant.jar;C:\Program Files\Borland\BES\SonicMQ\lib\sonic_Client.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-beanutils.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-collections.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-digester.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-logging.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-api.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-impl.jar;F:\WORK\JSF10BETA\temp5\libraries\jstl.jar;F:\WORK\JSF10BETA\temp5\libraries\standard.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\j2sdk1.4.2_01\demo\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\jre\javaws\javaws.jar;C:\j2sdk1.4.2_01\jre\lib\charsets.jar;C:\j2sdk1.4.2_01\jre\lib\ext\dnsns.jar;C:\j2sdk1.4.2_01\jre\lib\ext\ldapsec.jar;C:\j2sdk1.4.2_01\jre\lib\ext\localedata.jar;C:\j2sdk1.4.2_01\jre\lib\ext\sunjce_provider.jar;C:\j2sdk1.4.2_01\jre\lib\im\indicim.jar;C:\j2sdk1.4.2_01\jre\lib\im\thaiim.jar;C:\j2sdk1.4.2_01\jre\lib\jce.jar;C:\j2sdk1.4.2_01\jre\lib\jsse.jar;C:\j2sdk1.4.2_01\jre\lib\plugin.jar;C:\j2sdk1.4.2_01\jre\lib\rt.jar;C:\j2sdk1.4.2_01\jre\lib\sunrsasign.jar;C:\j2sdk1.4.2_01\lib\dt.jar;C:\j2sdk1.4.2_01\lib\htmlconverter.jar;C:\j2sdk1.4.2_01\lib\tools.jar" org.apache.jasper.JspC -d "F:/WORK/JSF10BETA/temp4/classes/Temporary_Files/.jsp/temp4app" -p "" -c result_0002dset_0002ejsp_jsp -uriroot "F:/WORK/JSF10BETA/temp4/temp4app" "F:/WORK/JSF10BETA/temp4/temp4app/result-set.jsp"
    "result-set.jsp": Invocation Error
    "tabbedpanes.jsp": ParserUtils: warning org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration.
    error:This absolute uri (http://java.sun.com/jsf/demo/components) cannot be resolved in either web.xml or the jar files deployed with this application
    C:\j2sdk1.4.2_01\bin\java -classpath "C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\ant.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-common.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-factory.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-resources.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;F:\WORK\JSF10BETA\temp4\classes;C:\Program Files\Borland\BES\lib\asrt.jar;C:\Program Files\Borland\BES\lib\lm.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;C:\Program Files\Borland\BES\lib\vbjorb.jar;C:\Program Files\Borland\BES\lib\vbejb.jar;C:\Program Files\Borland\BES\lib\vbsec.jar;C:\Program Files\Borland\BES\lib\beandt.jar;C:\Program Files\Borland\BES\lib\dx.jar;C:\Program Files\Borland\BES\lib\axis\axis-bes.jar;C:\Program Files\Borland\BES\lib\axis\axis-ant.jar;C:\Program Files\Borland\BES\SonicMQ\lib\sonic_Client.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-beanutils.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-collections.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-digester.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-logging.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-api.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-impl.jar;F:\WORK\JSF10BETA\temp5\libraries\jstl.jar;F:\WORK\JSF10BETA\temp5\libraries\standard.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\j2sdk1.4.2_01\demo\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\jre\javaws\javaws.jar;C:\j2sdk1.4.2_01\jre\lib\charsets.jar;C:\j2sdk1.4.2_01\jre\lib\ext\dnsns.jar;C:\j2sdk1.4.2_01\jre\lib\ext\ldapsec.jar;C:\j2sdk1.4.2_01\jre\lib\ext\localedata.jar;C:\j2sdk1.4.2_01\jre\lib\ext\sunjce_provider.jar;C:\j2sdk1.4.2_01\jre\lib\im\indicim.jar;C:\j2sdk1.4.2_01\jre\lib\im\thaiim.jar;C:\j2sdk1.4.2_01\jre\lib\jce.jar;C:\j2sdk1.4.2_01\jre\lib\jsse.jar;C:\j2sdk1.4.2_01\jre\lib\plugin.jar;C:\j2sdk1.4.2_01\jre\lib\rt.jar;C:\j2sdk1.4.2_01\jre\lib\sunrsasign.jar;C:\j2sdk1.4.2_01\lib\dt.jar;C:\j2sdk1.4.2_01\lib\htmlconverter.jar;C:\j2sdk1.4.2_01\lib\tools.jar" org.apache.jasper.JspC -d "F:/WORK/JSF10BETA/temp4/classes/Temporary_Files/.jsp/temp4app" -p "" -c tabbedpanes_0002ejsp_jsp -uriroot "F:/WORK/JSF10BETA/temp4/temp4app" "F:/WORK/JSF10BETA/temp4/temp4app/tabbedpanes.jsp"
    "tabbedpanes.jsp": Invocation Error
    "imagemap.jsp": ParserUtils: warning org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration.
    error:This absolute uri (http://java.sun.com/jsf/demo/components) cannot be resolved in either web.xml or the jar files deployed with this application
    C:\j2sdk1.4.2_01\bin\java -classpath "C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\jasper\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\ant.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-runtime.jar;C:\Program Files\Borland\BES\lib\tomcat\common\jasper-compiler.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-common.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-factory.jar;C:\Program Files\Borland\BES\lib\tomcat\common\naming-resources.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;F:\WORK\JSF10BETA\temp4\classes;C:\Program Files\Borland\BES\lib\asrt.jar;C:\Program Files\Borland\BES\lib\lm.jar;C:\Program Files\Borland\BES\lib\xmlrt.jar;C:\Program Files\Borland\BES\lib\vbjorb.jar;C:\Program Files\Borland\BES\lib\vbejb.jar;C:\Program Files\Borland\BES\lib\vbsec.jar;C:\Program Files\Borland\BES\lib\beandt.jar;C:\Program Files\Borland\BES\lib\dx.jar;C:\Program Files\Borland\BES\lib\axis\axis-bes.jar;C:\Program Files\Borland\BES\lib\axis\axis-ant.jar;C:\Program Files\Borland\BES\SonicMQ\lib\sonic_Client.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-beanutils.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-collections.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-digester.jar;F:\WORK\JSF10BETA\temp5\libraries\commons-logging.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-api.jar;F:\WORK\JSF10BETA\temp5\libraries\jsf-impl.jar;F:\WORK\JSF10BETA\temp5\libraries\jstl.jar;F:\WORK\JSF10BETA\temp5\libraries\standard.jar;C:\Program Files\Borland\BES\lib\tomcat\common\servlet.jar;C:\j2sdk1.4.2_01\demo\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\j2sdk1.4.2_01\jre\javaws\javaws.jar;C:\j2sdk1.4.2_01\jre\lib\charsets.jar;C:\j2sdk1.4.2_01\jre\lib\ext\dnsns.jar;C:\j2sdk1.4.2_01\jre\lib\ext\ldapsec.jar;C:\j2sdk1.4.2_01\jre\lib\ext\localedata.jar;C:\j2sdk1.4.2_01\jre\lib\ext\sunjce_provider.jar;C:\j2sdk1.4.2_01\jre\lib\im\indicim.jar;C:\j2sdk1.4.2_01\jre\lib\im\thaiim.jar;C:\j2sdk1.4.2_01\jre\lib\jce.jar;C:\j2sdk1.4.2_01\jre\lib\jsse.jar;C:\j2sdk1.4.2_01\jre\lib\plugin.jar;C:\j2sdk1.4.2_01\jre\lib\rt.jar;C:\j2sdk1.4.2_01\jre\lib\sunrsasign.jar;C:\j2sdk1.4.2_01\lib\dt.jar;C:\j2sdk1.4.2_01\lib\htmlconverter.jar;C:\j2sdk1.4.2_01\lib\tools.jar" org.apache.jasper.JspC -d "F:/WORK/JSF10BETA/temp4/classes/Temporary_Files/.jsp/temp4app" -p "" -c imagemap_0002ejsp_jsp -uriroot "F:/WORK/JSF10BETA/temp4/temp4app" "F:/WORK/JSF10BETA/temp4/temp4app/imagemap.jsp"
    "imagemap.jsp": Invocation Error

    It looks like the XML parser provided by the server is having problems with resolving URIs to resources that are within a JAR file. In addition, the JSF web applications have JSTL 1.1 bundled into them, so if the server is running a version of Tomcat 4.x (instead of 5.x) you'll have problems with the JSTL tag libraries -- which the guessNumber demo does not use but the components demo does.
    Craig

  • How to disable the specific elements in the enumerator by other enumerator functions

    Hi,
    I have three enumerator functions.
    If I select the 1st enumerator first element then 2nd enumerator function top two elements should disable.
    If I select the 1st enumerator second element then 2nd enumerator function 3rd and 4th elements should disable.
    If I select the 1st enumerator third element then 3rd enumerator function top two elements should disable.
    thanks.
    with regards and warm welcome,
    Ramamoorthy S

    Hi
    i attached a sample vi that shows the concept. you can develop it into the actual logic that you want, with Enum 1, 2 and 3.
    post your code if need more help.
    Attachments:
    enum elements disable.vi ‏11 KB

  • HOW TO Developing an Authorization plug-in

    #if defined (_WIN32)
    #pragma warning(disable : 4996)
    BOOL WINAPI DllMain(
        HINSTANCE hinstDLL,  // handle to DLL module
        DWORD fdwReason,     // reason for calling function
        LPVOID lpReserved )  // reserved
    return TRUE;
    #endif
    How to create here
    /*----------------------------------------------------------------------------+
    |       ___     _       _                                                    |
    |      /   |   | |     | |                                                   |
    |     / /| | __| | ___ | |__   ___                                           |
    |    / /_| |/ _  |/ _ \|  _ \ / _ \                                          |
    |   / ___  | (_| | (_) | |_) |  __/                                          |
    |  /_/   |_|\__,_|\___/|____/ \___|                                          |
    |                                                                            |
    |                                                                            |
    |  ADOBE CONFIDENTIAL                                                        |
    |  __________________                                                        |
    |                                                                            |
    |  Copyright (c) 2003 - 2010, Adobe Systems Incorporated.                    |
    |  All rights reserved.                                                      |
    |                                                                            |
    |  NOTICE:  All information contained herein is, and remains the property    |
    |  of Adobe Systems Incorporated and its suppliers, if any. The intellectual |
    |  and technical concepts contained herein are proprietary to Adobe Systems  |
    |  Incorporated and its suppliers and may be covered by U.S. and Foreign     |
    |  Patents, patents in process, and are protected by trade secret or         |
    |  copyright law. Dissemination of this information or reproduction of this  |
    |  material is strictly forbidden unless prior written permission is         |
    |  obtained from Adobe Systems Incorporated.                                 |
    |                                                                            |
    |          Adobe Systems Incorporated       415.832.2000                     |
    |          601 Townsend Street              415.832.2020 fax                 |
    |          San Francisco, CA 94103                                           |
    |                                                                            |
    +----------------------------------------------------------------------------*/
    #include "StdAfx.h"
    #include "FmsAuthAdaptor.h"
    #include "FmsAuthActions.h"
    #include "FmsMedia.h"
    #include <stdio.h>
    #include <fcntl.h>
    #include <string.h>
    #include "hash.h"
    #include <sstream>
    #if defined (_WIN32)
    #pragma warning(disable : 4996)
    BOOL WINAPI DllMain(
        HINSTANCE hinstDLL,  // handle to DLL module
        DWORD fdwReason,     // reason for calling function
        LPVOID lpReserved )  // reserved
    return TRUE;
    #endif
    // Flag to process SWF Verification in this auth sample.  A real SWF file
    // must be targeted in the SWFVerification code below for the example to work.
    static const bool kAuthorizeSwfVerification = false;
    class FmsAuthAdaptor : public IFmsAuthAdaptor
    public:
      FmsAuthAdaptor(IFmsAuthServerContext2* pFmsAuthServerContext)
       : m_pFmsAuthServerContext(pFmsAuthServerContext) {}
      virtual ~FmsAuthAdaptor() {}
      void authorize(IFmsAuthEvent* pAev);
      void notify(IFmsAuthEvent* pAev);
      void getEvents(I32 aevBitAuth[], I32 aevBitNotf[], unsigned int count);
    private:
      bool getStats(I64 clientStatsHandle, FmsClientStats& baseStats);
      void processStats(IFmsAuthEvent* pAev);
      IFmsAuthServerContext2* m_pFmsAuthServerContext;
    // Utils
    // Note: Do not delete the return value.  The return value is a buffer
    // allocated in FMS memory space, and FMS will manage the memory.
    static char* getStringField(const IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop)
    FmsVariant field;
    if (pEv->getField(prop, field) == IFmsAuthEvent::S_SUCCESS && field.type == field.kString)
      return reinterpret_cast<char*>(field.str);
    return 0;
    // Note: Do not delete the return value.  The return value is a buffer
    // allocated in FMS memory space, and FMS will manage the memory.
    static U8* getBufferField(const IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop)
    FmsVariant field;
    if (pEv->getField(prop, field) == IFmsAuthEvent::S_SUCCESS && field.type == field.kBuffer)
      return field.buf;
    return 0;
    static bool getI8Field(const IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop, I8& iValue)
    FmsVariant field;
    if (pEv->getField(prop, field) == IFmsAuthEvent::S_SUCCESS && field.type == field.kI8)
      iValue = field.i8;
      return true;
    return false;
    static bool getI32Field(const IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop, I32& iValue)
    FmsVariant field;
    if (pEv->getField(prop, field) == IFmsAuthEvent::S_SUCCESS && field.type == field.kI32)
      iValue = field.i32;
      return true;
    return false;
    static bool getI64Field(const IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop, I64& iValue)
    FmsVariant field;
    if (pEv->getField(prop, field) == IFmsAuthEvent::S_SUCCESS && field.type == field.kI64)
      iValue = field.i64;
      return true;
    return false;
    static bool getFloatField(const IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop, float& fValue)
    FmsVariant field;
    if (pEv->getField(prop, field) == IFmsAuthEvent::S_SUCCESS && field.type == field.kFloat)
      fValue = field.f;
      return true;
    return false;
    static bool getU16Field(const IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop, U16& iValue)
    FmsVariant field;
    if (pEv->getField(prop, field) == IFmsAuthEvent::S_SUCCESS && field.type == field.kU16)
      iValue = field.u16;
      return true;
    return false;
    static bool setStringField(IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop, char* pValue)
    FmsVariant field;
    field.setString(reinterpret_cast<I8*>(pValue));
    return pEv->setField(prop, field) == IFmsAuthEvent::S_SUCCESS;
    static bool setI8Field(IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop, I8 iValue)
    FmsVariant field;
    field.setI8(iValue);
    return pEv->setField(prop, field) == IFmsAuthEvent::S_SUCCESS;
    static bool setU8Field(IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop, U8 iValue)
    FmsVariant field;
    field.setU8(iValue);
    return pEv->setField(prop, field) == IFmsAuthEvent::S_SUCCESS;
    static bool setI32Field(IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop, I32 iValue)
    FmsVariant field;
    field.setI32(iValue);
    return pEv->setField(prop, field) == IFmsAuthEvent::S_SUCCESS;
    static bool setI64Field(IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop, I64 iValue)
    FmsVariant field;
    field.setI64(iValue);
    return pEv->setField(prop, field) == IFmsAuthEvent::S_SUCCESS;
    static bool setFloatField(IFmsAuthEvent* pEv, IFmsAuthEvent::Field prop, float fValue)
    FmsVariant field;
    field.setFloat(fValue);
    return pEv->setField(prop, field) == IFmsAuthEvent::S_SUCCESS;
    static bool isADPCMSupported(int iAudioCodecs)
    return (iAudioCodecs & SUPPORT_SND_ADPCM) != 0;
    static bool isVP6Supported(int iVideoCodecs)
    int iAllVP6 = ( SUPPORT_VID_VP6ALPHA | SUPPORT_VID_VP6 );
    return (iVideoCodecs & iAllVP6) != 0;
    static bool isService(int iType)
    return (iType & TYPE_SERVICE) != 0;
    static bool isAMF3(unsigned char uEncod)
    return (uEncod == ENCODE_AMF3);
    // This class will process all authorization events
    class MyFmsAuthorizeEvent
    public:
    MyFmsAuthorizeEvent(IFmsAuthEvent* pAev, IFmsAuthServerContext2* pFmsAuthServerContext)
      : m_pAev(pAev), m_pFmsAuthServerContext(pFmsAuthServerContext) {}
    virtual ~MyFmsAuthorizeEvent() {}
    void authorize();
    private:
    IFmsAuthEvent*   m_pAev;
    IFmsAuthServerContext2* m_pFmsAuthServerContext;
    void MyFmsAuthorizeEvent::authorize()
    bool bAuthorized = true;  // default authorization state
    switch(m_pAev->getType())
      case IFmsAuthEvent::E_CONNECT:
       // only E_CONNECT allows changes to the following fields:
       // F_CLIENT_AUDIO_SAMPLE_ACCESS
       // F_CLIENT_AUDIO_SAMPLE_ACCESS_LOCK
       // F_CLIENT_READ_ACCESS
       // F_CLIENT_READ_ACCESS_LOCK
       // F_CLIENT_VIDEO_SAMPLE_ACCESS
       // F_CLIENT_VIDEO_SAMPLE_ACCESS_LOCK
       // F_CLIENT_WRITE_ACCESS_LOCK
       // F_CLIENT_WRITE_ACCESS
       I8 iValue;
       if (getI8Field(m_pAev, IFmsAuthEvent::F_CLIENT_WRITE_ACCESS, iValue))
        setI8Field(m_pAev, IFmsAuthEvent::F_CLIENT_WRITE_ACCESS, iValue);
       // redirect connection example
       char* pUri = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_URI);
       if (pUri && !strcmp(pUri, "rtmp://localhost/streamtest"))
        setStringField(m_pAev, IFmsAuthEvent::F_CLIENT_REDIRECT_URI,
         "rtmp://localhost:1935/streamtest");
        bAuthorized = false;
       // set DiffServ fields based on a client IP
       // char* pIp = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_IP);
       // if (pIp && !strcmp(pIp, "192.168.1.1"))
        // set the DSCP bits and mask
        U8 m_diffServBits = 170;
        U8 m_diffServMask = 252;
        setU8Field(m_pAev, IFmsAuthEvent::F_CLIENT_DIFFSERV_BITS, m_diffServBits);
        setU8Field(m_pAev, IFmsAuthEvent::F_CLIENT_DIFFSERV_MASK, m_diffServMask);
        bAuthorized = true;
      break;
      case IFmsAuthEvent::E_PLAY:
       char* pStreamName = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_NAME);
       if (pStreamName)
        setStringField(m_pAev, IFmsAuthEvent::F_STREAM_NAME, pStreamName);
       char* pStreamType = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_TYPE);
       if (pStreamType)
        setStringField(m_pAev, IFmsAuthEvent::F_STREAM_TYPE, pStreamType);
       char* pStreamQuery = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_QUERY);
       if (pStreamQuery)
        setStringField(m_pAev, IFmsAuthEvent::F_STREAM_QUERY, pStreamQuery);
       I8 iValue;
       if (getI8Field(m_pAev, IFmsAuthEvent::F_STREAM_RESET, iValue))
        // If iValue is 1 (true) the playlist will be reset and the
        // stream will be the only stream in the playlist; otherwise
        // 0 (false) means the stream will be added to the existing
        // playlist.
        setI8Field(m_pAev, IFmsAuthEvent::F_STREAM_RESET, iValue);
       if (getI8Field(m_pAev, IFmsAuthEvent::F_STREAM_IGNORE, iValue))
        // If iValue is 1 (true) the stream timestamps will be ignored;
        // otherwise 0 (false) means the timestamps will be handled.
        setI8Field(m_pAev, IFmsAuthEvent::F_STREAM_IGNORE, iValue);
       char* pStreamTransition = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_TRANSITION);
       if (pStreamTransition && strlen(pStreamTransition))
        // MBR transition example
        if (!strcmp(pStreamTransition, "switch") ||
         !strcmp(pStreamTransition, "swap"))
         // get the old stream's properties
         char* pOldStreamName = getStringField(m_pAev, IFmsAuthEvent::F_OLD_STREAM_NAME);
         char* pOldStreamType = getStringField(m_pAev, IFmsAuthEvent::F_OLD_STREAM_TYPE);
         char* pOldStreamQuery = getStringField(m_pAev, IFmsAuthEvent::F_OLD_STREAM_QUERY);
         // if pOldStream is empty (optional for switch) current stream is in play
         // do we really want stream transition? 
          // no we do not allow transition
          // bAuthorized = false;
          // now transition will be turned off and old stream continue playing
          // break;    
         // doing nothing will execute transition mode as is
         // or you could modify transition by changing transition properties
         // set it to 1 to indicate they will be hooking up the stream,
         // but that it does not currently exist
         setI32Field(m_pAev, IFmsAuthEvent::F_STREAM_LIVE_PUBLISH_PENDING, 1);
        // get the offset value if transition is set to offset mode for reconnect
        if (!strcmp(pStreamTransition, "resume"))
         float fValue;
         if (getFloatField(m_pAev, IFmsAuthEvent::F_STREAM_OFFSET, fValue))
          float offset = fValue; //offset value in seconds
       else
        // This is a regular play waiting for approval, which may be converted
        // into a play2 command by changing transition properties
      break;
      case IFmsAuthEvent::E_PUBLISH:
       char* pStreamName = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_NAME);
       if (pStreamName)
        setStringField(m_pAev, IFmsAuthEvent::F_STREAM_NAME, pStreamName);
       char* pStreamType = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_TYPE);
       if (pStreamType)
        setStringField(m_pAev, IFmsAuthEvent::F_STREAM_TYPE, pStreamType);
       I32 iValue;
       if (getI32Field(m_pAev, IFmsAuthEvent::F_STREAM_PUBLISH_TYPE, iValue))
        // publish types:
        // 0 : record
        // 1 : append
        // 2 : appendWithGap
        // -1 : live
        setI32Field(m_pAev, IFmsAuthEvent::F_STREAM_PUBLISH_TYPE, iValue);
      break;
      case IFmsAuthEvent::E_FILENAME_TRANSFORM:
        I64 iValue;
        if (getI64Field(m_pAev, IFmsAuthEvent::F_CLIENT_ID, iValue))
         // some fields are not eligible to be modified. The return
         // value will be false when trying to modify the F_CLIENT_ID.
         bool bSet = setI64Field(m_pAev, IFmsAuthEvent::F_CLIENT_ID, iValue);
        char* pStreamName = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_NAME);
        if (pStreamName)
         // some fields are not eligible to be modified. The return
         // value will be false when trying to modify the F_STREAM_NAME.
         bool bSet = setStringField(m_pAev, IFmsAuthEvent::F_STREAM_NAME, pStreamName);
        char* pStreamPath = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_PATH);
        if (pStreamPath)
         setStringField(m_pAev, IFmsAuthEvent::F_STREAM_PATH, pStreamPath);
        char* pStreamType = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_TYPE);
        if (pStreamType)
         setStringField(m_pAev, IFmsAuthEvent::F_STREAM_TYPE, pStreamType); 
      break;
      case IFmsAuthEvent::E_PAUSE:
       bAuthorized = false; // block all E_PAUSE events.
       float fValue;
       if (getFloatField(m_pAev, IFmsAuthEvent::F_STREAM_PAUSE_TIME, fValue))
        float fPauseTime = fValue; // in seconds
       I8 iValue;
       if (getI8Field(m_pAev, IFmsAuthEvent::F_STREAM_PAUSE, iValue))
        // 1 (true) means PAUSE
        // 0 (false) means UNPAUSE
        bool boolPause = iValue != 0;
       if (getI8Field(m_pAev, IFmsAuthEvent::F_STREAM_PAUSE_TOGGLE, iValue))
        // 1 (true) means PAUSE_TOGGLE
        // 0 (false) means no PAUSE_TOGGLE was set
        bool boolPauseToggle = iValue != 0;
       FmsVariant field;
       // Notify Action example: An IFmsNofifyAction is created to notify
       // server side action script (SSAS) of the E_PAUSE event by calling
       // the function name "method" in the script.  In this example two
       // variables will be passed to "method" by calling addParam(field)
       // on the action.
       if (m_pAev->getField(IFmsAuthEvent::F_CLIENT_ID, field) == IFmsAuthEvent::S_SUCCESS)
        I64 clientId = field.i64;
        IFmsNotifyAction* pAction = m_pAev->addNotifyAction("Notified by adaptor");
        pAction->setClientId(field);
        const char mtd[] = "method";
        field.setString(reinterpret_cast<I8*>(const_cast<char*>(mtd)));
        pAction->setMethodName(field);
        // create and insert a U16 "12345" as the first parameter
        field.setU16(12345);
        pAction->addParam(field);
        // create and insert clientId as a double as the second parameter
        field.setDouble((double)clientId);
        pAction->addParam(field);
        // Note: SSAS does not work with I64 or Buffer variants
        // field.setI64(clientId);
        // pAction->addParam(field); // incorrect
      break;
      case IFmsAuthEvent::E_SEEK:
       bAuthorized = false; // block all E_SEEK events
       float fValue;
       if (getFloatField(m_pAev, IFmsAuthEvent::F_STREAM_SEEK_POSITION, fValue))
        // Modification of the seek position example:
        // fValue + 3; will add 3 seconds to the initial seek posistion
        float fSeekTime = fValue; // value in seconds
        setFloatField(m_pAev, IFmsAuthEvent::F_STREAM_SEEK_POSITION, fSeekTime);
      break;
      case IFmsAuthEvent::E_LOADSEGMENT:
       // bAuthorized = false; // block all E_LOADSEGMENT events
       // E_LOADSEGMENT is a read only event that substitutes E_PLAY on
       // FMS Origin servers for recorded streams.
       I64 iValue;
       if (getI64Field(m_pAev, IFmsAuthEvent::F_SEGMENT_START, iValue))
        I64 iStart = iValue; // in bytes
       if (getI64Field(m_pAev, IFmsAuthEvent::F_SEGMENT_END, iValue))
        I64 iEnd = iValue; // in bytes
      break;
      case IFmsAuthEvent::E_RECORD:
       // bAuthorized = false; // block all E_RECORD events
       float fValue;
       if (getFloatField(m_pAev, IFmsAuthEvent::F_STREAM_RECORD_MAXSIZE, fValue))
        float recMaxSize = fValue; // in kilobytes
        setFloatField(m_pAev, IFmsAuthEvent::F_STREAM_RECORD_MAXSIZE, recMaxSize);
       if (getFloatField(m_pAev, IFmsAuthEvent::F_STREAM_RECORD_MAXDURATION, fValue))
        float recMaxDuration = fValue; // in seconds
        setFloatField(m_pAev, IFmsAuthEvent::F_STREAM_RECORD_MAXDURATION, recMaxDuration);
      break;
      case IFmsAuthEvent::E_SWF_VERIFY:
       // SWF Verification example:
       // kAuthorizeSwfVerification is assigned false by default.  The
       // target SWF file must be updated for this to work.
       if(kAuthorizeSwfVerification)
        I8 swfvVersion = 0;
        if(getI8Field(m_pAev, IFmsAuthEvent::F_CLIENT_SWFV_VERSION, swfvVersion))
         std::stringstream stream;
         stream << "Swf verification version is " << static_cast<int>(swfvVersion);
         m_pFmsAuthServerContext->log(stream.str().c_str(), IFmsServerContext::kInformation, false);
        I64 swfvDepth;
        if(getI64Field(m_pAev, IFmsAuthEvent::F_CLIENT_SWFV_DEPTH, swfvDepth))
         I32 swfvTTL;
         if(getI32Field(m_pAev, IFmsAuthEvent::F_CLIENT_SWFV_TTL, swfvTTL))
          swfvTTL /= 2;
          setI32Field(m_pAev, IFmsAuthEvent::F_CLIENT_SWFV_TTL, swfvTTL);
         U8 digest[kSHA256DigestLen];
         // Target a real SWF file instead of sample.swf
         hashSwfFileAtDepth("C:\\sample.swf", swfvDepth, digest);
         FmsVariant field;
         field.setBuffer(digest, kSHA256DigestLen);
         m_pAev->setField(IFmsAuthEvent::F_CLIENT_SWFV_DIGEST, field);
      break;
      case IFmsAuthEvent::E_APPSTART:
      case IFmsAuthEvent::E_APPSTOP:
      case IFmsAuthEvent::E_DISCONNECT:
      case IFmsAuthEvent::E_STOP:
      case IFmsAuthEvent::E_UNPUBLISH:
      case IFmsAuthEvent::E_ACTION:
      case IFmsAuthEvent::E_CODEC_CHANGE:
      case IFmsAuthEvent::E_RECORD_STOP:
      case IFmsAuthEvent::E_CLIENT_PAUSE:
      case IFmsAuthEvent::E_SWF_VERIFY_COMPLETE:
      case IFmsAuthEvent::E_CLIENT_SEEK:
      case IFmsAuthEvent::E_START_TRANSMIT:
      case IFmsAuthEvent::E_STOP_TRANSMIT:
      case IFmsAuthEvent::E_MAXEVENT:
      break;
    IFmsAuthServerContext2::AuthFailureDesc* desc = NULL;
    if(!bAuthorized)
      desc = new IFmsAuthServerContext2::AuthFailureDesc("Blocked by auth adaptor",
       IFmsAuthServerContext2::kDefaultStatus, -1);
    char buf[1024];
    const char* const action = bAuthorized ? "approved" : "rejected";
    sprintf(buf, "Received authorization type=%d id=%p %s\n", m_pAev->getType(),
      m_pAev, action);
    // log to the configured FMS log directory. If the third parameter is true,
    // also send the log to the system event log.
    m_pFmsAuthServerContext->log(buf, IFmsServerContext::kInformation, false);
    m_pFmsAuthServerContext->onAuthorize(m_pAev, bAuthorized, desc);
    delete desc;
    class MyFmsNotifyEvent
    public:
      MyFmsNotifyEvent(IFmsAuthEvent* pAev, IFmsAuthServerContext2* pFmsAuthServerContext)
       : m_pAev(pAev), m_pFmsAuthServerContext(pFmsAuthServerContext) {}
      virtual ~MyFmsNotifyEvent() {}
      void notify() const;
    private:
      IFmsAuthEvent* m_pAev;
      IFmsAuthServerContext2* m_pFmsAuthServerContext;
    void MyFmsNotifyEvent::notify() const
    switch(m_pAev->getType())
      case IFmsAuthEvent::E_PLAY:
       char* pAppName = getStringField(m_pAev, IFmsAuthEvent::F_APP_NAME);
       char* pAppInst = getStringField(m_pAev, IFmsAuthEvent::F_APP_INST);
       char* pAppUri = getStringField(m_pAev, IFmsAuthEvent::F_APP_URI);
       char* pClIp = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_IP);
       char* pClUri = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_URI);
       char* pClNewUri = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_REDIRECT_URI);
       char* pClVhost = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_VHOST);
       char* pClRef = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_REFERRER);
       char* pClPurl = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_PAGE_URL);
       char* pClAgent = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_USER_AGENT);
       char* pClRAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_READ_ACCESS);
       char* pClWAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_WRITE_ACCESS);
       char* pClAudioAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_AUDIO_SAMPLE_ACCESS);
       char* pClVideoAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_VIDEO_SAMPLE_ACCESS);
       char* pClProto = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_PROTO);
       char* pClUstem = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_URI_STEM);
       char* pStreamName = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_NAME);
       char* pStreamType = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_TYPE);
       char* pStreamQuery = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_QUERY);
       char* pStreamPath = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_PATH);
       I32 iValue;
       if (getI32Field(m_pAev, IFmsAuthEvent::F_CLIENT_AUDIO_CODECS, iValue))
        bool bADPCM = isADPCMSupported(iValue);
       if (getI32Field(m_pAev, IFmsAuthEvent::F_CLIENT_VIDEO_CODECS, iValue))
        bool bVP6 = isVP6Supported(iValue);
       if (getI32Field(m_pAev, IFmsAuthEvent::F_CLIENT_TYPE, iValue))
        bool bService = isService(iValue);
       if (getI32Field(m_pAev, IFmsAuthEvent::F_STREAM_ID, iValue))
        I32 iStreamId = iValue;
       float fValue;
       if (getFloatField(m_pAev, IFmsAuthEvent::F_STREAM_LENGTH, fValue))
        float fLength = fValue; // in seconds
       if (getFloatField(m_pAev, IFmsAuthEvent::F_STREAM_POSITION, fValue))
        float iPosition = fValue; // in seconds
       I64 lValue;
       if (getI64Field(m_pAev, IFmsAuthEvent::F_CLIENT_ID, lValue))
        I64 iClientId = lValue; 
       I8 sValue;
       if (getI8Field(m_pAev, IFmsAuthEvent::F_CLIENT_SECURE, sValue))
        bool bSecure = sValue != 0;
       if (getI8Field(m_pAev, IFmsAuthEvent::F_CLIENT_AMF_ENCODING, sValue))
        bool bAMF3 = isAMF3(sValue);
       if (getI8Field(m_pAev, IFmsAuthEvent::F_CLIENT_READ_ACCESS_LOCK, sValue))
        bool bRead = sValue != 0;
       if (getI8Field(m_pAev, IFmsAuthEvent::F_CLIENT_WRITE_ACCESS_LOCK, sValue))
        bool bWrite = sValue != 0;
       if (getI8Field(m_pAev, IFmsAuthEvent::F_CLIENT_AUDIO_SAMPLE_ACCESS_LOCK, sValue))
        bool bAudioRead = sValue != 0;
       if (getI8Field(m_pAev, IFmsAuthEvent::F_CLIENT_VIDEO_SAMPLE_ACCESS_LOCK, sValue))
        bool bVideoRead = sValue != 0;
       if (getI8Field(m_pAev, IFmsAuthEvent::F_STREAM_RESET, sValue))
        bool bReset = sValue != 0;
       if (getI8Field(m_pAev, IFmsAuthEvent::F_STREAM_IGNORE, sValue))
        bool bIgnore = sValue != 0;
      break;
      case IFmsAuthEvent::E_SEEK:
       float fValue;
       if (getFloatField(m_pAev, IFmsAuthEvent::F_STREAM_SEEK_POSITION, fValue))
        float fSeekTime = fValue;
       // Disconnect Action example: disconnect the client that was
       // specified by the E_SEEK notify event
       FmsVariant field;
       if (m_pAev->getField(IFmsAuthEvent::F_CLIENT_ID, field) == IFmsAuthEvent::S_SUCCESS)
        IFmsDisconnectAction* pAction =
         const_cast<IFmsAuthEvent*>(m_pAev)->
          addDisconnectAction("Seek is not allowed. Blocked by adaptor");
        pAction->setClientId(field);
      break;
      case IFmsAuthEvent::E_CODEC_CHANGE:
       char* pAppName = getStringField(m_pAev, IFmsAuthEvent::F_APP_NAME);
       char* pAppInst = getStringField(m_pAev, IFmsAuthEvent::F_APP_INST);
       char* pAppUri = getStringField(m_pAev, IFmsAuthEvent::F_APP_URI);
       char* pClIp = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_IP);
       char* pClUri = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_URI);
       char* pClNewUri = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_REDIRECT_URI);
       char* pClVhost = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_VHOST);
       char* pClRef = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_REFERRER);
       char* pClPurl = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_PAGE_URL);
       char* pClAgent = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_USER_AGENT);
       char* pClRAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_READ_ACCESS);
       char* pClWAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_WRITE_ACCESS);
       char* pClAudioAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_AUDIO_SAMPLE_ACCESS);
       char* pClVideoAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_VIDEO_SAMPLE_ACCESS);
       char* pClProto = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_PROTO);
       char* pClUstem = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_URI_STEM);
       char* pStreamName = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_NAME);
       char* pStreamType = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_TYPE);
       char* pStreamQuery = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_QUERY);
       char* pStreamPath = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_PATH);
       U16 fType;
       if (getU16Field(m_pAev, IFmsAuthEvent::F_STREAM_CODEC_TYPE, fType))
        U16 streamCodecType = fType;
        if (streamCodecType == kVIDEO_CODEC)
         U16 fValue;
         if (getU16Field(m_pAev, IFmsAuthEvent::F_STREAM_CODEC, fValue))
          U16 streamCodecValue = fValue;
          if (streamCodecValue == VIDEO_CODEC_SORENSON)
           // Disconnect Action example: Disallow clients trying
           // to publish content with the sorenson video codec.
           FmsVariant field;
           if (m_pAev->getField(IFmsAuthEvent::F_CLIENT_ID, field) == IFmsAuthEvent::S_SUCCESS)
            IFmsDisconnectAction* pAction =
             const_cast<IFmsAuthEvent*>(m_pAev)->
             addDisconnectAction("Sorenson is not allowed. Blocked by adaptor");
            pAction->setClientId(field);
      break;
      case IFmsAuthEvent::E_RECORD_STOP:
       char* pAppName = getStringField(m_pAev, IFmsAuthEvent::F_APP_NAME);
       char* pAppInst = getStringField(m_pAev, IFmsAuthEvent::F_APP_INST);
       char* pAppUri = getStringField(m_pAev, IFmsAuthEvent::F_APP_URI);
       char* pClIp = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_IP);
       char* pClUri = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_URI);
       char* pClNewUri = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_REDIRECT_URI);
       char* pClVhost = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_VHOST);
       char* pClRef = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_REFERRER);
       char* pClPurl = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_PAGE_URL);
       char* pClAgent = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_USER_AGENT);
       char* pClRAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_READ_ACCESS);
       char* pClWAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_WRITE_ACCESS);
       char* pClAudioAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_AUDIO_SAMPLE_ACCESS);
       char* pClVideoAccess = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_VIDEO_SAMPLE_ACCESS);
       char* pClProto = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_PROTO);
       char* pClUstem = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_URI_STEM);
       char* pStreamName = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_NAME);
       char* pStreamType = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_TYPE);
       char* pStreamQuery = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_QUERY);
       char* pStreamPath = getStringField(m_pAev, IFmsAuthEvent::F_STREAM_PATH);
       float fValue;
       if (getFloatField(m_pAev, IFmsAuthEvent::F_STREAM_RECORD_MAXSIZE, fValue))
        float recMaxSize = fValue; // in kilobytes
       if (getFloatField(m_pAev, IFmsAuthEvent::F_STREAM_RECORD_MAXDURATION, fValue))
        float recMaxDuration = fValue; // in seconds
      break;
      case IFmsAuthEvent::E_SWF_VERIFY_COMPLETE:
       char* pClIp = getStringField(m_pAev, IFmsAuthEvent::F_CLIENT_IP);
       I8 version; // version of SWF verification
       getI8Field(m_pAev, IFmsAuthEvent::F_CLIENT_SWFV_VERSION, version);
       I64 depth; // depth in the SWF file hashed
       getI64Field(m_pAev, IFmsAuthEvent::F_CLIENT_SWFV_DEPTH, depth);
       I32 ttl; // time to live of the SWF hash provided
       getI32Field(m_pAev, IFmsAuthEvent::F_CLIENT_SWFV_TTL, ttl);
       // digest provided to match against
       U8* buffer = getBufferField(m_pAev, IFmsAuthEvent::F_CLIENT_SWFV_DIGEST);
       // result of the attempted match-- see FmsAuthEvents.h enum
       // eSWFMatch for the meaning of this field
       I32 match;
       getI32Field(m_pAev, IFmsAuthEvent::F_CLIENT_SWFV_RESULT, match);
       std::stringstream stream;
       stream << "swf verification for client: "
         << std::string(pClIp)
         << " is complete, the result is: " << match;
       m_pFmsAuthServerContext->log(stream.str().c_str(), IFmsServerContext::kInformation, false);
      break;
      case IFmsAuthEvent::E_APPSTART:
      case IFmsAuthEvent::E_APPSTOP:
      case IFmsAuthEvent::E_CONNECT:
      case IFmsAuthEvent::E_DISCONNECT:
      case IFmsAuthEvent::E_FILENAME_TRANSFORM:
      case IFmsAuthEvent::E_STOP:
      case IFmsAuthEvent::E_PAUSE:
      case IFmsAuthEvent::E_PUBLISH:
      case IFmsAuthEvent::E_UNPUBLISH:
      case IFmsAuthEvent::E_LOADSEGMENT:
      case IFmsAuthEvent::E_ACTION:
      case IFmsAuthEvent::E_RECORD:
      case IFmsAuthEvent::E_CLIENT_PAUSE:
      case IFmsAuthEvent::E_SWF_VERIFY:
      case IFmsAuthEvent::E_CLIENT_SEEK:
      case IFmsAuthEvent::E_START_TRANSMIT:
      case IFmsAuthEvent::E_STOP_TRANSMIT:
      case IFmsAuthEvent::E_MAXEVENT:
      break;
    char buf[1024];
    sprintf(buf, "Received notification type=%d id=%p\n", m_pAev->getType(), m_pAev);
    // log to the configured FMS log directory. If the third parameter is true,
    // also send the log to the system event log.
    m_pFmsAuthServerContext->log(buf, IFmsServerContext::kInformation, false);
    m_pFmsAuthServerContext->onNotify(m_pAev);
    /* All authorization events flow through this wrapper function.
    * Note: This sample auth adaptor has MyFmsAppAuthEvent allocated on the
    * stack, but time intensive implementations may warrant authorization to
    * be allocated on the heap so work may be passed to a thread pool.  This
    * prevents starvation of the calling FMS threads in custom code that may
    * have processing delays (ie database calls, network filesystem access, etc..).
    void FmsAuthAdaptor::authorize(IFmsAuthEvent* pAev)
      MyFmsAuthorizeEvent(pAev, m_pFmsAuthServerContext).authorize();
    /* All notification events flow through this wrapper function.
    * Note: This sample auth adaptor has MyFmsNotifyEvent allocated on the
    * stack, but time intensive implementations may warrant notifications to
    * be allocated on the heap so work may be passed to a thread pool.  This
    * prevents starvation of the calling FMS threads in custom code that may
    * have processing delays (ie database calls, network filesystem access, etc..).
    void FmsAuthAdaptor::notify(IFmsAuthEvent* pAev)
      processStats(pAev);
      MyFmsNotifyEvent(pAev, m_pFmsAuthServerContext).notify();
    * Get client statistics.
    bool FmsAuthAdaptor::getStats(I64 clientStatsHandle, FmsClientStats& baseStats)
    bool bValue= m_pFmsAuthServerContext->getClientStats(clientStatsHandle, baseStats);
    return bValue;
    * Example obtainting client stats from an E_CONNECT or E_STOP event
    void FmsAuthAdaptor::processStats(IFmsAuthEvent* pAev)
      I64 statsHandle;
      FmsClientStats baseStats;
      if (!getI64Field(pAev, IFmsAuthEvent::F_CLIENT_STATS_HANDLE, statsHandle))
       return;
      char* pAppName = getStringField(pAev, IFmsAuthEvent::F_APP_NAME);
      if (pAev->getType() == IFmsAuthEvent::E_CONNECT)
       getStats(statsHandle, baseStats);
       // log data
       char buf[1024];
       char hashKey[9];
       memset(hashKey, 0, 9);
       memcpy(hashKey, &statsHandle, sizeof(statsHandle));
       sprintf(buf, "client Stats Handle= %s, bytes_in= %f, bytes_out= %f\n", hashKey,
        static_cast<double>(baseStats.bytes_in), static_cast<double>(baseStats.bytes_out));
       m_pFmsAuthServerContext->log(buf, IFmsServerContext::kInformation, false);
      else if (pAev->getType() == IFmsAuthEvent::E_STOP)
       getStats(statsHandle, baseStats);
    /* By default, all authorization and notifications events will be sent.
    * Call excludeEvents with the bit set to 1, to stop recieving events.
    * Note: The events:
    * E_APPSTART, E_APPSTOP, E_DISCONNECT, E_STOP, E_UNPUBLISH, E_CODEC_CHANGE
    * are excluded by default and are not authorizable.
    void FmsAuthAdaptor::getEvents(I32 aevBitAuth[], I32 aevBitNotf[], unsigned int count)
    // exclude certain auth events
    IFmsAuthEvent::EventType authExcludeEvent[] = { IFmsAuthEvent::E_SEEK };
    // set E_SEEK to a non authorizable event
    m_pFmsAuthServerContext->excludeEvents(aevBitAuth, count, authExcludeEvent, 1);
    // Warning: if E_CODEC_CHANGE event is not excluded, all messages will be
    // scanned to detect codec change. Subscribe to this event only as needed.
    // Example that excludes certain notify events. (E_PAUSE, E_CODEC_CHANGE)
    IFmsAuthEvent::EventType notifyExcludeEvent[] =
      { IFmsAuthEvent::E_PAUSE, IFmsAuthEvent::E_CODEC_CHANGE };
    m_pFmsAuthServerContext->excludeEvents(aevBitNotf, count, notifyExcludeEvent, 2);
    extern "C" void FCExport FmsCreateAuthAdaptor3(IFmsAuthServerContext2* pAuthServerCtx,
                  IFmsAuthAdaptor*& pFmsAuthAdaptor, U32& iVersion)
    pFmsAuthAdaptor = new FmsAuthAdaptor(pAuthServerCtx);
    U32 version = pAuthServerCtx->getVersion();
    U16 w2 = LWORD(version);
    U16 w1 = HWORD(version);
    iVersion = MKLONG(INTERFACE_MINOR_VERSION, INTERFACE_MAJOR_VERSION);
    char buf[1024];
    char *ptr = buf;
    int valueLen = pAuthServerCtx->getConfig("UserKey1", &ptr, sizeof(buf));
    if (!valueLen)
      valueLen = pAuthServerCtx->getConfig("UserKey2", &ptr, sizeof(buf));
      if (!valueLen)
       return;
      if (valueLen < 0)
       // failed to find this key
       return;
    if (valueLen < 0)
      // failed to find this key
      return;
    // value length is bigger then the buffer size, and a real adaptor should
        // allocate valueLen + 1 bytes and call again
    extern "C" void FCExport FmsDestroyAuthAdaptor3(IFmsAuthAdaptor* pAuthAdaptor )
    delete pAuthAdaptor;

    There is no API to Acrobat's document compare feature.
    It is certainly possible for an experienced plug-in programmer to
    create a new compare plug-in. For example, extract text from two PDFs
    and compare it. Comparison algorithms have been much studied so should
    be findable in academic literature.
    Going beyond text comparison would be a major exercise.
    Aandi Inston

  • Fix many web access problems with IFS 9.0.1 on Solaris (and other OS's)...

    When the installation is done according to the documentation,
    web access does not work because the scripts that add entries to
    the jserv.properties file add duplicate references to
    wrapper.env and wrapper.classpath. Look at the jserv.properties
    file below and look at the remarked-out (#) lines of the
    duplicate references. For example, look at the references to the
    wrapper.env=LD_LIBRARY_PATH
    Oracle, please note this bug so the web access problems are
    minimized when the product is intstalled.
    Thank you,
    William T.
    # Apache JServ Configuration
    File #
    ################################ W A R N I N G
    # Unlike normal Java properties, JServ configurations have some
    important
    # extensions:
    # 1) commas are used as token separators
    # 2) multiple definitions of the same key are concatenated in
    a
    # comma separated list.
    # Execution parameters
    # The Java Virtual Machine interpreter.
    # Syntax: wrapper.bin=[filename] (String)
    # Note: specify a full path if the interpreter is not visible in
    your path.
    wrapper.bin=/d3/Apache/jdk/bin/java
    # Arguments passed to Java interpreter (optional)
    # Syntax: wrapper.bin.parameters=[parameters] (String)
    # Default: NONE
    wrapper.bin.parameters=-Xms64m
    wrapper.bin.parameters=-Xmx128m
    # Apache JServ entry point class (should not be changed)
    # Syntax: wrapper.class=[classname] (String)
    # Default: "org.apache.jserv.JServ"
    # Arguments passed to main class after the properties filename
    (not used)
    # Syntax: wrapper.class.parameters=[parameters] (String)
    # Default: NONE
    # Note: currently not used
    # PATH environment value passed to the JVM
    # Syntax: wrapper.path=[path] (String)
    # Default: "/bin:/usr/bin:/usr/local/bin" for Unix systems
    # "c:\(windows-dir);c:\(windows-system-dir)" for Win32
    systems
    # Notes: if more than one line is supplied these will be
    concatenated using
    # ":" or ";" (depending wether Unix or Win32) characters
    # Under Win32 (windows-dir) and (windows-system-dir) will
    be
    # automatically evaluated to match your system
    requirements
    # CLASSPATH environment value passed to the JVM
    # Syntax: wrapper.classpath=[path] (String)
    # Default: NONE (Sun's JDK/JRE already have a default classpath)
    # Note: if more than one line is supplied these will be
    concatenated using
    # ":" or ";" (depending wether Unix or Win32) characters.
    JVM must be
    # able to find JSDK and JServ classes and any utility
    classes used by
    # your servlets.
    # Note: the classes you want to be automatically reloaded upon
    modification
    # MUST NOT be in this classpath or the classpath of the
    shell
    # you start the Apache from.
    wrapper.classpath=/d3/Apache/jdk/lib/tools.jar
    wrapper.classpath=/d3/Apache/Jserv/libexec/ApacheJServ.jar
    wrapper.classpath=/d3/Apache/Jsdk/lib/jsdk.jar
    # An environment name with value passed to the JVM
    # Syntax: wrapper.env=[name]=[value] (String)
    # Default: NONE on Unix Systems
    # SystemDrive and SystemRoot with appropriate values on
    Win32 systems
    wrapper.env=PATH=/d3/bin
    # An environment name with value copied from caller to Java
    Virtual Machine
    # Syntax: wrapper.env.copy=[name] (String)
    # Default: NONE
    # Uncomment the following lines to set the default locale and
    NLS_LANG
    # setting based on the environment variables.
    # wrapper.env.copy=LANG
    # wrapper.env.copy=NLS_LANG
    # Copies all environment from caller to Java Virtual Machine
    # Syntax: wrapper.env.copyall=true (boolean)
    # Default: false
    # Protocol used for signal handling
    # Syntax: wrapper.protocol=[name] (String)
    # Default: ajpv12
    # General parameters
    # Set the default IP address or hostname Apache JServ binds (or
    listens) to.
    # If you have a machine with multiple IP addresses, this address
    # will be the one used. If you set the value to localhost, it
    # will be resolved to the IP address configured for the locahost
    # on your system (generally this is 127.0.0.1). This feature is
    so
    # that one can have multiple instances of Apache JServ listening
    on
    # the same port number, but different IP addresses on the same
    machine.
    # Use bindaddress=* only if you know exactly what you are doing
    here,
    # as it could let JServ wide open to the internet.
    # You must understand that JServ has to answer only to Apache,
    and should not
    # be reachable by nobody but mod_jserv. So localhost is usually a
    # good option. The second best choice would be an internal
    network address
    # (protected by a firewall) if JServ is running on another
    machine than Apache.
    # Ask your network admin.
    # "*" may be used on boxes where some of the clients get
    connected using
    # "localhost"and others using another IP addr.
    # Syntax: bindaddress=[ipaddress] or [localhost] or [*]
    # Default: localhost
    bindaddress=localhost
    # Set the port Apache JServ listens to.
    # Syntax: port=[1024,65535] (int)
    # Default: 8007
    port=8007
    # Servlet Zones parameters
    # List of servlet zones Apache JServ manages
    # Syntax: zones=[servlet zone],[servlet zone]... (Comma
    separated list of String)
    # Default: NONE
    zones=root
    # Configuration file for each servlet zone (one per servlet zone)
    # Syntax: [servlet zone name as on the zones list].properties=
    [full path to configFile]
    (String)
    # Default: NONE
    # Note: if the file could not be opened, try using absolute
    paths.
    root.properties=/d3/Apache/Jserv/etc/zone.properties
    # Thread Pool parameters
    # Enables or disables the use of the thread pool.
    # Syntax: pool=true (boolean)
    # Default: false
    # WARNING: the pool has not been extensively tested and may
    generate
    deadlocks.
    # For this reason, we advise against using this code in
    production environments.
    pool=false
    # Indicates the number of idle threads that the pool may contain.
    # Syntax: pool.capacity=(int)>0
    # Default: 10
    # NOTE: depending on your system load, this number should be low
    for contantly
    # loaded servers and should be increased depending on load
    bursts.
    pool.capacity=10
    # Indicates the pool controller that should be used to control
    the
    # level of the recycled threads.
    # Syntax: pool.controller=[full class of controller] (String)
    # Default: org.apache.java.recycle.DefaultController
    # NOTE: it is safe to leave this unchanged unless special
    recycle behavior
    # is needed. Look at the "org.apache.java.recycle" package
    javadocs for more
    # info on other pool controllers and their behavior.
    pool.controller=org.apache.java.recycle.DefaultController
    # Security parameters
    # Enable/disable the execution of org.apache.jserv.JServ as a
    servlet.
    # This is disabled by default because it may give informations
    that should
    # be restricted.
    # Note that the execution of Apache JServ as a servlet is
    filtered by the web
    # server modules by default so that both sides should be enabled
    to let this
    # service work.
    # This service is useful for installation and configuration
    since it gives
    # feedback about the exact configurations Apache JServ is using,
    but it should
    # be disabled when both installation and configuration processes
    are done.
    # Syntax: security.selfservlet=true (boolean)
    # Default: false
    # WARNING: disable this in a production environment since may
    give reserved
    # information to untrusted users.
    security.selfservlet=true
    # Set the maximum number of socket connections Apache JServ may
    handle
    # simultaneously. Make sure your operating environment has
    enough file
    # descriptors to allow this number.
    # Syntax: security.maxConnections=(int)>1
    # Default: 50
    security.maxConnections=50
    # Backlog setting for very fine performance tunning of JServ.
    # Unless you are familiar to sockets leave this value commented
    out.
    # security.backlog=5
    # List of IP addresses allowed to connect to Apache JServ. This
    is a first
    # security filtering to reject possibly unsecure connections and
    avoid the
    # overhead of connection authentication.
    # <warning>
    # (please don't use the following one unless you know what you
    are doing :
    # security.allowedAddresses=DISABLED
    # allows connections on JServ'port from entire internet.)
    # You do need only to allow YOUR Apache to talk to JServ.
    # </warning>
    # Default: 127.0.0.1
    # Syntax: security.allowedAddresses=[IP address],[IP Address]...
    (Comma
    separated list of IP addresses)
    #security.allowedAddresses=127.0.0.1
    # Enable/disable connection authentication.
    # NOTE: unauthenticated connections are a little faster since
    authentication
    # handshake is not performed at connection creation.
    # WARNING: authentication is disabled by default because we
    believe that
    # connection restriction from all IP addresses but localhost
    reduces your
    # time to get Apache JServ to run. If you allow other addresses
    to connect and
    # you don't trust it, you should enable authentication to
    prevent untrusted
    # execution of your servlets. Beware: if authentication is
    disabled and the
    # IP address is allowed, everyone on that machine can execute
    your servlets!
    # Syntax: security.authentication=[true,false] (boolean)
    # Default: true
    security.authentication=false
    # Authentication secret key.
    # The secret key is passed as a file that must be kept secure
    and must
    # be exactly the same of those used by clients to authenticate
    themselves.
    # Syntax: security.secretKey=[secret key path and filename]
    (String)
    # Default: NONE
    # Note: if the file could not be opened, try using absolute
    paths.
    #security.secretKey=./etc/jserv.secret.key
    # Length of the randomly generated challenge string (in bytes)
    used to
    # authenticate connections. 5 is the lowest possible choice to
    force a safe
    # level of security and reduce connection creation overhead.
    # Syntax: security.challengeSize=(int)>5
    # Default: 5
    #security.challengeSize=5
    # Logging parameters
    # Enable/disable Apache JServ logging.
    # WARNING: logging is a very expensive operation in terms of
    performance. You
    # should reduced the generated log to a minumum or even disable
    it if fast
    # execution is an issue. Note that if all log channels (see
    below) are
    # enabled, the log may become really big since each servlet
    request may
    # generate many Kb of log. Some log channels are mainly for
    debugging
    # purposes and should be disabled in a production environment.
    # Syntax: log=[true,false] (boolean)
    # Default: true
    log=true
    # Set the name of the trace/log file. To avoid possible
    confusion about
    # the location of this file, an absolute pathname is recommended.
    # This log file is different than the log file that is in the
    # jserv.conf file. This is the log file for the Java portion of
    Apache
    # JServ.
    # On Unix, this file must have write permissions by the owner of
    the JVM
    # process. In other words, if you are running Apache JServ in
    manual mode
    # and Apache is running as user nobody, then the file must have
    its
    # permissions set so that that user can write to it.
    # Syntax: log.file=[log path and filename] (String)
    # Default: NONE
    # Note: if the file could not be opened, try using absolute
    paths.
    log.file=/d3/Apache/Jserv/logs/jserv.log
    # Enable the timestamp before the log message
    # Syntax: log.timestamp=[true,false] (boolean)
    # Default: true
    log.timestamp=true
    # Use the given string as a data format
    # (see java.text.SimpleDateFormat for the list of options)
    # Syntax: log.dateFormat=(String)
    # Default: [dd/MM/yyyy HH:mm:ss:SSS zz]
    log.dateFormat=[dd/MM/yyyy HH:mm:ss:SSS zz]
    # Since all the messages logged are processed by a thread
    running with
    # minimum priority, it's of vital importance that this thread
    gets a chance
    # to run once in a while. If it doesn't, the log queue overflow
    occurs,
    # usually resulting in the OutOfMemoryError.
    # To prevent this from happening, two parameters are used:
    log.queue.maxage
    # and log.queue.maxsize. The former defines the maximum time for
    the logged
    # message to stay in the queue, the latter defines maximum
    number of
    # messages in the queue.
    # If one of those conditions becomes true (age > maxage || size
    maxsize),# the log message stating that fact is generated and the log
    queue is
    # flushed in the separate thread.
    # If you ever see such a message, either your system doesn't
    live up to its
    # expectations or you have a runaway loop (probably, but not
    necessarily,
    # generating a lot of log messages).
    # WARNING: Default values are lousy, you probably want to tweak
    them and
    # report the results back to the development team.
    # Syntax: log.queue.maxage = [milliseconds]
    # Default: 5000
    log.queue.maxage = 5000
    # Syntax: log.queue.maxsize = [integer]
    # Default: 1000
    log.queue.maxsize = 1000
    # Enable/disable logging the channel name
    # Default: false
    # log.channel=false
    # Enable/disable channels, each logging different actions.
    # Syntax: log.channel.[channel name]=[true,false] (boolean)
    # Default: false
    # Info channel - quite a lot of informational messages
    # hopefully you don't need them under normal circumstances
    # log.channel.info=true
    # Servlets exception, i.e. exception caught during
    # servlet.service() processing are monitored here
    # you probably want to have this one switched on
    log.channel.servletException=true
    # JServ exception, caught internally in jserv
    # we suggest to leave it on
    log.channel.jservException=true
    # Warning channel, it catches all the important
    # messages that don't cause JServ to stop, leave it on
    log.channel.warning=true
    # Servlet log
    # All messages logged by servlets. Probably you want
    # this one to be switched on.
    log.channel.servletLog=true
    # Critical errors
    # Messages produced by critical events causing jserv to stop
    log.channel.critical=true
    # Debug channel
    # Only for internal debugging purposes
    # log.channel.debug=true
    #wrapper.classpath=/d3/ord/jlib/ordim.zip
    #wrapper.classpath=/d3/ord/jlib/ordhttp.zip
    # Oracle XSQL Servlet
    wrapper.classpath=/d3/lib/oraclexsql.jar
    # Oracle JDBC
    wrapper.classpath=/d3/jdbc/lib/classes12.zip
    # Oracle XML Parser V2 (with XSLT Engine)
    wrapper.classpath=/d3/lib/xmlparserv2.jar
    # Oracle XML SQL Components for Java
    wrapper.classpath=/d3/rdbms/jlib/xsu12.jar
    # XSQLConfig.xml File location
    wrapper.classpath=/d3/xdk/admin
    # Oracle BC4J
    wrapper.classpath=/d3/ord/jlib/ordim.zip
    wrapper.classpath=/d3/ord/jlib/ordvir.zip
    wrapper.classpath=/d3/ord/jlib/ordhttp.zip
    wrapper.classpath=/d3/BC4J/lib/jndi.jar
    wrapper.classpath=/d3/BC4J/lib/jbomt.zip
    wrapper.classpath=/d3/BC4J/lib/javax_ejb.zip
    wrapper.classpath=/d3/BC4J/lib/jdev-rt.jar
    wrapper.classpath=/d3/BC4J/lib/jbohtml.zip
    wrapper.classpath=/d3/BC4J/lib/jboremote.zip
    wrapper.classpath=/d3/BC4J/lib/jdev-cm.jar
    wrapper.classpath=/d3/BC4J/lib/jbodomorcl.zip
    wrapper.classpath=/d3/BC4J/lib/jboimdomains.zip
    wrapper.classpath=/d3/BC4J/lib/collections.jar
    wrapper.classpath=/d3/Apache/Apache/htdocs/onlineorders_html
    #wrapper.classpath=/d3/Apache/Apache/htdocs/OnlineOrders_html/Onl
    ineOrders.jar
    # The following classpath entries are necessary for EJBs to run
    in IAS or DB when
    present
    wrapper.classpath=/d3/lib/aurora_client.jar
    wrapper.classpath=/d3/lib/vbjorb.jar
    wrapper.classpath=/d3/lib/vbjapp.jar
    # Oracle Servlet
    wrapper.classpath=/d3/lib/servlet.jar
    # Oracle Java Server Pages
    wrapper.classpath=/d3/jsp/lib/ojsp.jar
    # Oracle Util
    wrapper.classpath=/d3/jsp/lib/ojsputil.jar
    # Oracle Java SQL
    wrapper.classpath=/d3/sqlj/lib/translator.zip
    # Oracle JDBC
    #wrapper.classpath=/d3/jdbc/lib/classes12.zip
    # SQLJ runtime
    wrapper.classpath=/d3/sqlj/lib/runtime12.zip
    # Oracle Messaging
    wrapper.classpath=/d3/rdbms/jlib/aqapi.jar
    wrapper.classpath=/d3/rdbms/jlib/jmscommon.jar
    # OJSP environment settings
    #wrapper.env=ORACLE_HOME=/d3
    # The next line should be modified to reflect the value of the
    SID for your
    webserver.
    #wrapper.env=ORACLE_SID=cmpdb
    #wrapper.env=LD_LIBRARY_PATH=/d3/lib
    ## Enable the flag below if you are using jdk 1.2.2_05a or above
    #wrapper.env=JAVA_COMPILER=NONE
    # Advanced Queuing - AQXML
    wrapper.classpath=/d3/rdbms/jlib/aqxml.jar
    #wrapper.classpath=/d3/rdbms/jlib/xsu12.jar
    #wrapper.classpath=/d3/lib/xmlparserv2.jar
    wrapper.classpath=/d3/lib/xschema.jar
    #wrapper.classpath=/d3/jlib/jndi.jar
    wrapper.classpath=/d3/jlib/jta.jar
    oemreporting.properties=/d3/Apache/Jserv/oemreporting/oemreportin
    g.properties
    zones = root, oemreporting
    wrapper.classpath=/d3/jlib/share-opt-1_1_9.zip
    wrapper.classpath=/d3/jlib/caboshare-opt-1_0_3.zip
    wrapper.classpath=/d3/jlib/marlin-opt-1_0_7.zip
    wrapper.classpath=/d3/jlib/tecate-opt-1_0_4.zip
    wrapper.classpath=/d3/jlib/ocelot-opt-1_0_2.zip
    wrapper.classpath=/d3/jlib/regexp.jar
    wrapper.classpath=/d3/jlib/sax2.jar
    #wrapper.classpath=/d3/jlib/servlet.jar
    wrapper.bin.parameters= -DORACLE_HOME=/d3
    #wrapper.env=LD_LIBRARY_PATH=/d3/lib32
    wrapper.env.copy=DISPLAY
    wrapper.bin.parameters=-DORACLE_HOME=/d3
    #wrapper.classpath=/d3/lib/vbjorb.jar
    #wrapper.classpath=/d3/lib/vbjapp.jar
    wrapper.classpath=/d3/classes/classesFromIDLVisi
    wrapper.classpath=/d3/jlib/swingall-1_1_1.jar
    wrapper.classpath=/d3/jlib/ewtcompat3_3_15.jar
    wrapper.classpath=/d3/jlib/ewt-3_3_18.jar
    wrapper.classpath=/d3/jlib/share-1_1_9.jar
    wrapper.classpath=/d3/jlib/help-3_2_9.jar
    wrapper.classpath=/d3/jlib/ice-5_06_3.jar
    wrapper.classpath=/d3/jdbc/lib/classes111.zip
    wrapper.classpath=/d3/classes
    wrapper.classpath=/d3/jlib/oembase-9_0_1.jar
    wrapper.classpath=/d3/jlib/oemtools-9_0_1.jar
    wrapper.classpath=/d3/jlib
    wrapper.classpath=/d3/jlib/javax-ssl-1_1.jar
    wrapper.classpath=/d3/jlib/jssl-1_1.jar
    wrapper.classpath=/d3/jlib/netcfg.jar
    wrapper.classpath=/d3/jlib/dbui-2_1_2.jar
    #wrapper.classpath=/d3/lib/aurora_client.jar
    #wrapper.classpath=/d3/lib/xmlparserv2.jar
    wrapper.classpath=/d3/network/jlib/netmgrm.jar
    wrapper.classpath=/d3/network/jlib/netmgr.jar
    wrapper.classpath=/d3/network/tools
    wrapper.classpath=/d3/jlib/kodiak-1_2_1.jar
    wrapper.classpath=/d3/sysman/jlib/netchart360.jar
    wrapper.classpath=/d3/jlib/pfjbean.jar
    wrapper.env=SHLIB_PATH=/d3/lib32
    wrapper.env=LIBPATH=/d3/lib32
    wrapper.classpath=/d3/ultrasearch/lib/isearch_midtier.jar
    wrapper.classpath=/d3/ultrasearch/lib/isearch_query.jar
    wrapper.classpath=/d3/ultrasearch/lib/jgl3.1.0.jar
    wrapper.classpath=/d3/lib/mail.jar
    wrapper.classpath=/d3/lib/activation.jar
    wrapper.classpath=/d3/ultrasearch/jsp/admin/config
    # Additions for iFS
    ## DO NOT REMOVE OR ALTER THE FOLLOWING LINE ....
    # iFS true
    # Uncomment if you want to use the same Jserv as other
    applications
    wrapper.classpath=/d3/9ifs/custom_classes
    wrapper.classpath=/d3/9ifs/settings
    wrapper.classpath=/d3/9ifs/lib/adk.jar
    wrapper.classpath=/d3/9ifs/lib/email.jar
    wrapper.classpath=/d3/9ifs/lib/http.jar
    wrapper.classpath=/d3/9ifs/lib/release.jar
    wrapper.classpath=/d3/9ifs/lib/repos.jar
    wrapper.classpath=/d3/9ifs/lib/utils.jar
    wrapper.classpath=/d3/9ifs/lib/webui.jar
    wrapper.classpath=/d3/9ifs/lib/provider.jar
    wrapper.classpath=/d3/jlib/javax-ssl-1_2.jar
    wrapper.classpath=/d3/jlib/jssl-1_2.jar
    wrapper.env=ORACLE_HOME=/d3
    wrapper.env=ORACLE_SID=cmpdb
    wrapper.env=LD_LIBRARY_PATH=/d3/lib:/d3/ctx/lib:/d3/lib32
    wrapper.env=NLS_LANG=.US7ASCII
    ## Additions for the iFS zone
    # Uncomment if you want to use the same Jserv as other
    applications
    zones=ifs
    ifs.properties=/d3/Apache/Jserv/etc/ifs.properties
    # End iFS section

    About your home page; Manually set up Firefox with the window(s) and tab(s)
    the way you want them to be. Then;
    '''''Firefox Options > General > Homepage'''''.
    Press the button labeled ''''Use Current'''.'
    =====================================
    Open a new window or tab. In the address bar, type '''''about:config'''''.
    If a warning screen comes up, press the '''''Be Careful''''' button.
    This is where Firefox finds information it needs to run.
    At the top of the screen is a search bar. Enter '''''browser.newtab.url'''''
    and press enter. '''''browser.newtab.url'''''
    tells Firefox what to show when a new tab is opened.
    If you want, right click and select '''''Modify'''''. You can change the
    setting to;<BR><BR>about:home (Firefox default home page),<BR>
    about:newtab (shows the sites most visited),<BR>
    about:blank (a blank page),<BR>
    or you can enter any web page you want.<BR><BR>
    The same instructions are used for the new window setting, listed as
    '''''browser.startup.homepage'''''.

  • Error using JSF inside JBuilder

    Hi,
    I have a project on JBuilder when I try to follow the steps from this tutorial :
    http://horstmann.com/corejsf/tutorial.html
    If I try to compile it with "check JSPs" enabled it give me this error :
    "index.jsp": ParserUtils: warning org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration.
    2003-10-12 02:37:29 - Exception initializing TldLocationsCache: XML parsing error on file /WEB-INF/lib/standard.jar: (line 3, col -1): Element type "taglib" is not declared.
    2003-10-12 02:37:30 - Exception initializing TldLocationsCache: zip file closed
    "welcome.jsp": ParserUtils: warning org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration.
    2003-10-12 02:37:31 - Exception initializing TldLocationsCache: XML parsing error on file /WEB-INF/lib/standard.jar: (line 3, col -1): Element type "taglib" is not declared.
    2003-10-12 02:37:31 - Exception initializing TldLocationsCache: zip file closed
    If I disable the error messages I am able to create the WAR file. But it still do not run in the JBuilder IDE.
    When I deploy it to JBoss (with integrated Tomcat) I got this error :
    02:42:00,612 INFO [Engine] Exception initializing TldLocationsCache: XML parsin
    g error on file /WEB-INF/lib/standard.jar: (line 6, col 19): Document root eleme
    nt "taglib", must match DOCTYPE root "null".
    Anyway the application is deployed on Jboss and I can test it successfully.
    Any idea of what the error messages cause ?
    Danilo.

    Hi,
    I have a project on JBuilder when I try to follow
    w the steps from this tutorial :
    http://horstmann.com/corejsf/tutorial.html
    If I try to compile it with "check JSPs" enabled it
    t give me this error :
    "index.jsp": ParserUtils: warning
    org.xml.sax.SAXParseException: Valid documents must
    have a <!DOCTYPE declaration.
    2003-10-12 02:37:29 - Exception initializing
    TldLocationsCache: XML parsing error on file
    /WEB-INF/lib/standard.jar: (line 3, col -1): Element
    type "taglib" is not declared.
    2003-10-12 02:37:30 - Exception initializing
    TldLocationsCache: zip file closed
    "welcome.jsp": ParserUtils: warning
    org.xml.sax.SAXParseException: Valid documents must
    have a <!DOCTYPE declaration.
    2003-10-12 02:37:31 - Exception initializing
    TldLocationsCache: XML parsing error on file
    /WEB-INF/lib/standard.jar: (line 3, col -1): Element
    type "taglib" is not declared.
    2003-10-12 02:37:31 - Exception initializing
    TldLocationsCache: zip file closed
    These are XML parsing errors when reading one of the tag library descriptor files embedded in standard.jar (the JSTL standard tag library JAR file). Because this JAR file works fine in other containers, it sounds like a problem with the servlet container embedded in JBuilder.
    Craig

Maybe you are looking for