Where to deploy custom XSQL action handlers?

I need to write some custom XSQL action handlers in Java. I am using JDeveloper 3.2 with the Oracle HTTP Server (= Apache + JServ) on Windows NT 4.0.
When I complete my action handler(s) and package them into a JAR file, where do I put them so they are picked up by the server? If I run a test XSQL page from JDeveloper, Web-to-Go finds it if I put the JAR file under Apache\Web-inf\lib, but not when I try it from a browser.
The Muench book (p. 602-603): "...make sure this .jar is included in the server CLASSPATH...". Is that different from the system-level classpath? Would that be in jserv.properties or where?
Is there a document that walks you through this particular jungle?
Best regards,
Jere
null

Thanks Eric,
it helped. The JAR file just needs to be in the JServ path. I'm still at loss though how to configure JServ so that the JAR gets reloaded if (when) it changes. It is a pain to restart Oracle HTTP server every time I change the JAR file, which is often during development. I thought of playing around with servlet zones, but decided not to waste time since action handlers are not really servlets.
--Jere
null

Similar Messages

  • XSQL Action Handlers vs. Java extentions

    Dear OTN team,
    You mentioned that you're planning to eliminate Action handlers and replace them by XSLT/Java extension API. In fact, you already have it. When I replaced the old parser by the newest one, there is release notes and extension readme files that allow any Java classes and 2 Oracle extensions (output and node-set()).
    I used it quite extensively with JDeveloper 3.1 and it works!
    Therefore, I have 1 question and 2 suggestions.
    Q: What is the impact of doing this - IAS, Portal-To-Go, XSQL engine standalone?
    S1: It seems almost mandatory to have an extension function nodeSetToString() (and ResultSetToString(), however it just a shortcut to
    nodeSetToString(node-set(<<result-set>>)) ).
    S2: At present time a CLOB field is required to be transformed to CDATA in order to be inserted, which is not natural and requires S2. Wouldn't it be better if XSU will handle it automatically? It is very easy for Oracle to implement, because, I suppose, in XMLSave you parsing using a top-to-bottom approach.
    Thank you,
    Dmitriy

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Steven Muench ([email protected]):
    A future version of XSQL Pages will integrate the XSQL Action Handlers as XSLT extension elements. At present, the Oracle XSLT engine supports extension functions but not extension elements.
    I don't understand the question about impact on IAS, Portal-to-go, or XSQL in this regard.
    On your S2, can you be more precise about what you'd like XSU to handle automatically?<HR></BLOCKQUOTE>
    Steve,
    1. Regarding IAS,XSQL and so on: what is the performance the extension functions vs. the Action Handlers. Are there any issues with caching and so forth? Do you recommend their usage for now?
    2. Now in order to combine fixed table columns with XML in CLOBs for the flexible content XSU automatically converts CLOBs into CDATA which is not natural for this kind of scenario. Moreover, it is quite painful during insertion. To make posted XML to be inserted into table/view one should write DocumentFragment-to-String type function as extension and use it in the XSL to transform CLOB related XML tag and its contents into CDATA! Plus the XSQL documentation doesn't say anything about that.
    It'd be nice to have a special attribute in the xsql:query, xslq:insert, xsql:update, xsql:delete(?) to enable/disable CLOB-to-XML-fragment or CLOB-to-CDATA transformation for the set of tags (probably space separated).
    Plus, it seems almost imperative to have the oracle implemented DocumentFragment-to-String extention function.
    Thank you,
    Dmitriy

  • Error while deploying, Custom Style Skin in OBIEE 11.1.1.6.7

    Hi,
    I have deployed Custom Style Skin in OBIEE 11.1.1.5 successfuly (with the help of http://www.rittmanmead.com/2010/12/oracle-bi-ee-11g-styles-skins-custom-xml-messages/ ).
    Now when we're moving RPD, Catalog & Custom Style Skin from OBIEE 11.1.1.5 to OBIEE 11.1.1.6.7, I could deploy RPD & Catalog but am not able to deploy Custom Style & Skin Folders.
    If you are aware of the process of deploying Custom Style & Skins (as mentioned in the link above), it requies:
    1. Custom Style & Skins folder to be Deploy using Weblogic Console.
    2. Making necessary changes in instanceconfig.xml (to point to the deployed folder) ---- this is where it's failing.
    When I do add necessary tags ( <URL> & <UI>) in instanceconfig.xml and restart Services. Presentation Services dosen't come up. Error message that is in log file is:
    In element URL: Can not have element children within a simple content.
    unknown element 'UI'
    Element 'UI' is not valid for content model : 'All(URL, SocketTimeoutSec,FileSizeMB)'
    Any pointers?
    Regards,
    Jitendra

    Hi,
    I too faced such issue, actually obiee11.1.1.5 version skin and style wont work in obiee11.1.1.6.0 and above patch ..
    u have do it once again by using obiee11.1.1.6.0 skin (because the 11.1.16.0 has UI and skin different from 11.1.1.5.0 )
    Thanks
    Deva

  • Documentation for Custom Disposition Action services in URM

    In 11g URM, the documentation references the ability to create a custom disposition action by accessing one of the pre-defined services and passing parameters. Unfortunately I can not find documentation stating what the parameters are for each of the services available. Does anyone know if documentation exists and where I can find it?
    Thanks.

    Just for posterity. The records management services are here:
    http://docs.oracle.com/cd/E14571_01/doc.1111/e11011/c11_rm002.htm#i1081443
    but the link provided got me close enough to find them.

  • Where to Place Custom Java Code

    We are planning on adding customized Java code to Identity Manager 8; XPRESS will be used to call the customized Java code.
    Questions:
    1) Where does this customised code reside in the Java Application Server (Glassfish)?
    2) Does the customized Java code have to be packaged in a JAR file?
    Many thanks for your help.

    You would deploy custom Java code along with the IDM war/ear file. Classes go in the WEB-INF/classes/ folder, JARs in WEB-INF/lib/ and that is application server independant.
    Class files or JARs? Do you have any build process for your IDM, like the custom build environment CBE, then the source files might end up as class files; if you are using a seperate build environment for those custom classes, then packaging them in a JAR would be the way to go.
    Generally speaking, using a JAR for your custom code is neater; whether a class in classes/com/foo/bar/Foo.class or in lib/myfoobars.jar takes precedence over the other is up to the class loader and depending on your application server and its settings, the behavior might vary - so be careful about mixing use of those locations.

  • Custom XSQL Serializers Error

    Hi,
    I have wrote the following custom XSQL Serializer to render the PDF.
    import org.w3c.dom.Document;
    import org.apache.log.Hierarchy;
    import org.apache.fop.messaging.MessageHandler;
    import oracle.xml.xsql.XSQLPageRequest;
    import oracle.xml.xsql.XSQLDocumentSerializer;
    import org.apache.fop.apps.Driver;
    import org.apache.log.output.NullOutputLogTarget;
    //Avalon
    import org.apache.avalon.framework.ExceptionUtil;
    import org.apache.avalon.framework.logger.ConsoleLogger;
    import org.apache.avalon.framework.logger.Logger;
    /**Customized serialize for FOP
    * Tested with the FOP 0.20.3RC release from 19-Jan-2002
    public class renderPDF implements XSQLDocumentSerializer {
    private static final String PDFMIME = "application/pdf";
    public void serialize(Document doc, XSQLPageRequest env) throws Throwable {
    try {
    // First make sure we can load the driver
    Driver FOPDriver = new Driver();
    // Tell FOP not to spit out any messages by default.
    // You can modify this code to create your own FOP Serializer
    // that logs the output to one of many different logger targets
    // using the Apache LogKit API
    //Setup logger
    Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_DISABLED);
    FOPDriver.setLogger(logger);
    // Some of FOP's messages appear to still use MessageHandler.
    MessageHandler.setOutputMethod(MessageHandler.NONE);
    // Then set the content type before getting the reader/
    env.setContentType(PDFMIME);
    FOPDriver.setOutputStream(env.getOutputStream());
    FOPDriver.setRenderer(FOPDriver.RENDER_PDF);
    FOPDriver.render(doc);
    catch (Exception e) {
    // Cannot write PDF output for the error anyway.
    // So maybe this stack trace will be useful info
    e.printStackTrace(System.err);
    When I run this code from the Jdeveloper using the embeded server, everything works fine, but when I deploy the code to Tomcat I am getting the following error I am using the FOP 20_03 Jar files and Jdeveloper 9.03
    Oracle XDK Java 9.0.3.0.0 ProductionXSQL-023: Class servlet.renderPDF is not an XSQL Serializer
    I have the following statement in XSQL page to call the custom XSQL serializer
    <?xml-stylesheet type="text/xsl" href="xsl/invoice_pdf.xsl" serializer="java:servlet.renderPDF" ?>
    Any comments or solution will be really appericated:
    Thanks in advance:
    Mohammad

    I'm trying to write a servlet in jDeveloper to take the XML document produced by XSQLRequest and an XSL (FO) file and produce a PDF response. So far I am unable to get jDeveloper to be able to find the Apache FOP jar files.
    How did you get jDeveloper to be able to find the Apache FOP jar files?
    Thanks in advance,
    Tom.

  • Deploying custom templates only shows first template

    Hi guys, I'm having an issue deploying custom templates.
    I have followed the steps outlined here (http://technet.microsoft.com/en-us/library/cc178976.aspx) but when I open up Word/New I see the "CompanyName" under custom templates but when I open it I only see the first template "Letter".
    I created the following entry in the registry:
    HKEY_Current_User\Software\Microsoft\Office\14.0\Common\Spotlight\Providers\Companyname with a string ServiceURL pointing to the path of the xml file.
    The XML file contains:
    <?xml version="1.0" encoding="utf-8"?>
    <o:featuredcontent lcid="1033" xmlns:o="urn:schemas-microsoft-com:office:office">
        <o:application id="WD">
            <o:featuredtemplates startdate="2011-03-01" enddate="2015-03-01">
                <!-- TEMPLATE 1 -->
                <o:featuredtemplate title="Letter" source="C:\Program Files (x86)\Microsoft Office\Templates\Companyname\Letter.dotx" >  
                </o:featuredtemplate>
                <!-- TEMPLATE 2 -->
                <o:featuredtemplate title="Budget" source="C:\Program Files (x86)\Microsoft Office\Templates\Companyname\Budget.dotx" >  
                </o:featuredtemplate>
            </o:featuredtemplates>
        </o:application>
    </o:featuredcontent>
    I read in another post (http://social.technet.microsoft.com/Forums/en-US/officesetupdeploy/thread/fbc4bf23-c9fb-4a6c-a981-49f68127bf77/) where someone was having the same problem and advised deleting the ..Spotlight\Content\Companyname\WD1031 reg key but that
    hasn't help. I still only see 1 template.
    Any help would be appreciated.

    Step.1
    Close Word and delete the following registry key
    HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Spotlight\Content
    Step.2
    Replace your XML file with the following sample
     <?xml version="1.0" encoding="utf-8"?>
     <o:featuredcontent lcid="1033" xmlns:o="urn:schemas-microsoft-com:office:office">
         <o:application id="WD">
             <o:featuredtemplates startdate="2011-03-01" enddate="2015-03-01">
                 <!-- TEMPLATE 1 -->
                 <o:featuredtemplate title="Letter" source="C:\Program Files (x86)\Microsoft Office\Templates\Companyname\Letter.dotx" >  
                    <o:media mediatype="" filename="" source="" />
                    <o:preview filename="" source="" />
                 </o:featuredtemplate>
                 <!-- TEMPLATE 2 -->
                 <o:featuredtemplate title="Budget" source="C:\Program Files (x86)\Microsoft Office\Templates\Companyname\Budget.dotx" >  
                    <o:media mediatype="" filename="" source="" />
                    <o:preview filename="" source="" />
                 </o:featuredtemplate>
             </o:featuredtemplates>
         </o:application>
     </o:featuredcontent>
    Tips: Keep  <o:media ---> and <o:preview ---> even you don't use them.
    Step.3
    Restart Word, check result
    Max Meng
    TechNet Community Support

  • Can I make a custom folder action that auto-shares images?

    Is it possible to create a custom Folder Action where any images I drop into there are auto shared to Flickr? I have my Flickr account setup in Mountain Lion already.

    I think there will be no out of the box solution but with Automator I think you could accomplish this task.

  • How to deploy customer extensions in EJB-Server?

    Hello,
    I would like to know, what is the best way to deploy customer extensions
    to a J2EE application (which is deployed as an .ear file) .
    I am using a configurable dynamic class loading to allow product
    customization (usually implementations of interfaces).
    I know some possible solutions, but...
    1. solution: the customer provides its product extensions as a jar file
    which is then located in the classpath of the J2EE server.
    But I dislike this solution, beause it requires a server restart if the
    customer extensions are redeployed and further on, depending on the
    customer company's security restricition, no access to the J2EE server's
    CLASSPATH might be granted.
    2. solution: the customer opens the .ear file of our product, adds its
    extension.jar to it and the extension.jar has to have a predefined name.
    By that we can make sure, that the classloader finds this jar (because
    it can be referenced in the classpath of the manifest.mf of the ejb.jar,
    it will do no harm, if it does not exist).
    What do you think about this?
    Are there other possible solutions?
    Best regards from sunny Black Forest, Germany,
         Mattin

    iis doesnt have jsp engine to work on ur jsp..it can rather redirects to ur webserver where u can put ur jsp and make it run ther..
    rgds
    Shanu

  • Mobiliser : Deploying custom code to SMP 3.0

    Hi Experts,
    We have developed few custom use cases on top of standalone Mobiliser 5.1 SP01 (Linux server).
    Same use case we are trying to deploy it to Mobiliser 5.1 SP03 and on SMP 3.0 SP03.
    1. I hope As-Is code which is developed on SP01 will not fit SP03, please confirm on this.
    2. Please let us know any guideline document how to migrate code from SP01 to SP03
    3. How to deploy custom code on SMP 3.0.
    With regards
    Shankar.K

    See my Answers below:
    1. I hope As-Is code which is developed on SP01 will not fit SP03, please confirm on this.
    Your code should have no impact unless there are some backend dependences. With SP03, additional OSGI bundles are copied to server and tomcat application (incase Money Mobiliser is used)
    2. Please let us know any guideline document how to migrate code from SP01 to SP03
    You can find the upgrade document here: https://websmp108.sap-ag.de/instguides Once at the support portal just navigate to SAP Mobile > Sybase Mobiliser Platform > Mobiliser Platform 5.1 SP03 on the left side of the screen then open Mobiliser Platform Upgrade Guide for SP03
    The vital part of the upgrade process is making sure that the DB backend, where the SP 03 Money folder will be retrieving its data from, is upgraded properly. To help alleviate  any further confusion:
    1. You will not be using the SP01  money folder or anything else in that directory anymore
    2. Everything that you need for the upgrade will be in the Mobiliser SP03 zip file that the customer should have.
    3. Upgrade the DB backend schema in the manner specified in the document
    4. You will need to perform some slight configurations to the Mobiliser SP03 money folder to successfully communicate with the DB upgrade that was performed in Step 3.  The configurations are referenced in the Mobiliser Installation manual for SP03. 
    3. How to deploy custom code on SMP 3.0.
    refer following:
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/30ae5b68-78a0-3010-6fa3-c1742e0195c0?overridelayout=true
    Regards, Kiran

  • Read External List Field on Custom ECB action

    I tryed to show a Custom ECB action on an External List.
    The External List have a Field "LOGICAL_ID" with an IP address, but the GetAttributeFromItemTable works only with Standard List.
    How i read the External List Field and open some shell or browser actions with these field?
    <script language="Javascript" unselectable="on">
    // START: Override Function
    function Custom_AddListMenuItems(m,ctx)
    var strDisplayText = "Ping";
    var strDisplayText1 = "Browse Http";
    var strDisplayText2 = "Telnet";
    var strDisplayText3 = "SSH";
    var strDisplayText4 = "Remote Desktop";
    // for test strDisplayText = currentItemID;
    var LOGICAL_ID = currentItemID;
    // var LOGICAL_ID = GetAttributeFromItemTable(itemTable, "LOGICAL_ID");
    // var LOGICAL_ID = itemTable.getAttribute("LOGICAL_ID");
    var strAction = "javascript:var x = new ActiveXObject('WScript.Shell');x.run('ping -t" + LOGICAL_ID + "');window.refresh";
    var strAction1 = "http://" + LOGICAL_ID;
    var strAction2 = "telnet://" + LOGICAL_ID;
    var strAction3 = "telnet://" + LOGICAL_ID + "/? -ssh";
    var strAction4  = "javascript:var x = new ActiveXObject('WScript.Shell');x.run('mstsc /v " + LOGICAL_ID + " /admin');window.refresh";
    var strImagePath = "";
    // Add menu item
    CAMOpt(m, strDisplayText, strAction, strImagePath);
    // add a separator to the menu
    CAMSep(m);
    CAMOpt(m, strDisplayText1, strAction1, strImagePath);
    CAMOpt(m, strDisplayText2, strAction2, strImagePath);
    CAMOpt(m, strDisplayText3, strAction3, strImagePath);
    CAMOpt(m, strDisplayText4, strAction4, strImagePath);
    // false means that the standard menu items should also be rendered
    return true;
    // END: Override function
    </script>

    Hi,
    If you want to disable the Rich Text Field dynamically, you can consider to use JavaScript and JavaScript Client Object Model.
    The “disable” attribute seems not work on Rich Text Editor control, so we can set the “display” attribute as “none” to hide the control instead:
    <script type="text/javascript">
    document.getElementById("ctl00_PlaceHolderMain_rftDefaultValue").style.display = "none";
    document.getElementById("ctl00_PlaceHolderMain_rftDefaultValue_toolbar").style.display = "none";
    document.getElementById("ctl00_PlaceHolderMain_rftDefaultValue_iframe").style.display = "none";
    console.log('hide');
    </script>
    You will need to find out the id of the toolbar and textbox of the Rich Text Editor control in page using IE developer(F12) first, then replace the ids in the script above.
    We can get values of list items using JavaScript Client Object Model:
    http://msdn.microsoft.com/en-us/library/office/hh185006(v=office.14).aspx
    More information about JavaScript Client Object Model:
    http://msdn.microsoft.com/en-us/library/office/hh185011(v=office.14).aspx
    http://msdn.microsoft.com/en-us/library/office/hh185015(v=office.14).aspx
    Feel free to reply if there are still any questions.
    Thanks
    Patrick Liang
    Forum Support
    Please remember to mark the replies as answers if they
    help and unmark them if they provide no help. If you have feedback for TechNet
    Subscriber Support, contact [email protected]
    Patrick Liang
    TechNet Community Support

  • I am using Photoshop CS5 on a new iMac with a wireless keyboard.  I used to be able to hit F11 to perform a custom sharpening action but now the F11 key is the volume control key and I have tried everything to disable or switch the volume key. I have also

    I am using Photoshop CS5 on a new iMac with a wireless keyboard.  I used to be able to hit F11 to perform a custom sharpening action but now the F11 key is the volume control key and I have tried everything to disable or switch the volume key. I have also tried assigning other function keys to initiate the action. Is there a simple solution to this? What am I missing?

    Try unmounting the volume on your iMac using Disk Utility. Then mount it again. You may need to reboot the laptop or relaunch its Finder process (using the Force Quit window) after remounting the drive on your iMac. Remember that no process may be accessing any files on the drive you plan to unmount, or the unmount will fail. Unmounting and remounting an external drive on my iMac made it become visible on my MacBook Pro after it had disappeared.

  • Where is the custom stamp location in Acrobat 9 Pro for Win Vista

    Where is the custom stamp location in Acrobat 9 Pro for Win Vista?

    See this thread to find out how to determine the location:
    http://acrobatusers.com/forums/aucbb/viewtopic.php?id=17521

  • Where can I find the Action Panel in Photoshop?

    Where can I find the Action Panel in Photoshop?

    Are you using photoshop or photoshop elements and which version?
    (in photoshop it should be under Window>Actions or Window>Show Actions)
    (only photoshop elements 11 has Window>Actions)
    (no other version of photoshop elements has Window>Actions)
    What operating system?

  • Custom dynamic action not firing

    Using Apex 4.2.2 on 11g
    I have a standard report A1
    There is a column link on report A1 which refreshes chart C1 using a custom dynamic action.
    The column link on report A1  has the URL set to  javascript:$.event.trigger('RefreshTrend_2', [{key_2:'#COL01#' }]);
    and there is a dynamic action D1 RefreshTrend_2 which sets the value of the chart filter P17_KEY_2 to the value of the javascript variable key_2 and then refreshes chart C1
    The dynamic action is custom with a type DOMObject of document and no condition
    This works fine but when I add another report/chart (report A2, chart C2)  combination with a similar dynamic action (D2), D2 is a copy of D1 with the values for the variables and chart region changed.
    The A2/C2 functionality works fine on its own, D2 gets fired when I click the column link, but not when there are 2 dynamic actions of custom/document on the page.
    This column link on A2 only fires the dynamic action D2 if dynamic action D2 has a higher sequence than D1 (if i move it above D1 in the list it will fire, but then D1 does not fire for the column link on A1
    Am I missing something?
    Thanks
    Kathryn

    Here is my page source from the browser (i put in some blank lines here to separate the 3 dynamic actions)
    <script type="text/javascript">
    apex.da.initDaEventList = function(){
    apex.da.gEventList = [
    {"triggeringElement":"P17_IS_OK","triggeringElementType":"ITEM","triggeringConditionType":"NOT_NULL","bindType":"bind","bindEventType":"change",actionList:[{"eventResult":true,"executeOnPageInit":true,"stopExecutionOnError":true,"affectedElementsType":"BUTTON",javascriptFunction:apex.da.enable,"action":"NATIVE_ENABLE"},{"eventResult":false,"executeOnPageInit":true,"stopExecutionOnError":true,"affectedElementsType":"BUTTON",javascriptFunction:apex.da.disable,"action":"NATIVE_DISABLE"}]},
    {"triggeringElement":"document","triggeringElementType":"DOM_OBJECT","bindType":"live","bindDelegateTo":document,"bindEventType":"RefreshTrend_2",actionList:[{"eventResult":true,"executeOnPageInit":true,"stopExecutionOnError":true,"waitForResult":true,"affectedElementsType":"ITEM","affectedElements":"P17_KEY_2",javascriptFunction:apex.da.setValue,"ajaxIdentifier":"3BB4667C9E25BFB8DCF63639507A062A88F713A193C0D30DDF1CEA8D6875A7F9","attribute01":"JAVASCRIPT_EXPRESSION","attribute05":"this.data.key_2","attribute09":"N","action":"NATIVE_SET_VALUE"},{"eventResult":true,"executeOnPageInit":true,"stopExecutionOnError":true,"affectedElementsType":"REGION","affectedRegionId":"R2959102626294614",javascriptFunction:apex.da.refresh,"action":"NATIVE_REFRESH"}]},
    {"triggeringElement":"document","triggeringElementType":"DOM_OBJECT","bindType":"live","bindDelegateTo":document,"bindEventType":"RefreshTrend_1",actionList:[{"eventResult":true,"executeOnPageInit":true,"stopExecutionOnError":true,"waitForResult":true,"affectedElementsType":"ITEM","affectedElements":"P17_KEY_1",javascriptFunction:apex.da.setValue,"ajaxIdentifier":"51D6B9673F7096076392A95D9D00B417D49DEB96D878B419FC6D1E482D0AB2F0","attribute01":"JAVASCRIPT_EXPRESSION","attribute05":"this.data.key_1","attribute09":"N","action":"NATIVE_SET_VALUE"},{"eventResult":true,"executeOnPageInit":false,"stopExecutionOnError":true,"affectedElementsType":"REGION","affectedRegionId":"R2925517394066336",javascriptFunction:apex.da.refresh,"action":"NATIVE_REFRESH"}]}];
    </script>
    Only the first "document" dynamic action will fire, even though I fire them by name using
    javascript:$.event.trigger('RefreshTrend_1', [{key_1:'#COL01#' }]); from the column link.
    Kathryn

Maybe you are looking for