Parse ColdFusion Source Code

I'm looking for some help in parsing ColdFusion source code,
say a cfc, to provide some documentation.
Does anyone have some pointers for me to research?
dickbob

> the standard
> CFC administrator tool is not available on shared
hosting.
All the tool does is to instantiate the component and output
it's metadata
on a template. There's no special trick to it.
http://livedocs.macromedia.com/coldfusion/7/htmldocs/00000488.htm
Adam

Similar Messages

  • Is it possible to debug coldfusion source code remotely

    Is it possible to debug coldfusion source code remotely, if
    so can you do it at the same time as debuging a flex app
    remotely(which I can do already)

    What do you mean by "remotely"?

  • Parsing Java Source Code

    HI!
    I am searching for an API to parse java source code, modify it (add new methods, change method names,....) and write it to a new file.
    any suggestions?
    mfg
    MK

    there is no such Java API

  • Problem with registering Parser - Recompiled source code, don't see any changes

    I had created a parser. I had register this parser with Ifs Manager. I had execute this following statement to see if been registered carefully:
    On user ifssys/ifssys
    sql)select name,stringvalue,bundle from odmv_property where name= 'p01';
    I see my parser....
    select name from odmv_propertybundle where id=1139;
    ParserLookupByFileExtension
    All it's ok. I upload a file with a 'p01' extension with option 'parser' on my Internet Explorer. All work fine.. My parser work. But I need to do some changes in my code. I update my code, recompile my code. My class file have been updated. After my parser (.class) file have been updated I upload a new file with parse option. I don't see any change I do in my code. Why??? How I can update my parser to view change. I have only recompile my code an place my new class files on the same directory. I have try again (change on code, recompile, test) and I don't see any changes.
    But I have test by change my classname. My classname before is Test1 and I have rename my classe by Test2. I have compiled this code and a file Test2.class have been generate. I have update my register parser with Ifs Manager to use the new classname Test2. I have chack with sql statement to see if my parser have been updated. I have been updated correctly. I have upload a new file with parse option and I see my change on my code..
    Do you have some explanations about that??
    How I can update my source code of a parser already registered to the parser take the change I do.
    Francois
    null

    Ok, but they have another manner to resolve this problem. If I upload a file with parser option on Windows Nt explorer (Using SmbServer or WcpServer). How I can update the class file into the JVM? I need the restart this those server or just one? If just one which server I need to restart?
    Thanks Francois
    null

  • Coldfusion - Source Code Deployment

    Hi All,
    I've been into development of an application, that makes use
    of Coldfusion and uses Oracle as the backend. My predominant
    expertise is in Oracle, although i have worked on Coldfusion, since
    joining this project. I had a few queries regarding the
    implementation of CFM files.
    The platform details are:- Coldfusion MX 6.1, Oracle 8i, IIS
    6.0
    The process, that i have followed is that :
    1) Verify if the default client store, and the database
    source name are all valid.
    2) Deploy the modified files in the root directory of the Web
    Server (In this case, IIS)
    3) If there are no other changes to other configurations,
    then restart the Coldfusion Application Server.
    4) An IIS reset, would be needed in the Web server.
    5) Logon to the configured, URL and verify the changes you
    deployed/ expected are reflected.
    This was the process i followed in my development. However on
    the TEST environment, the logic is quite fuzzy. I have noticed the
    source code content is duplicated in the Coldfusion's root
    directory (WWW) as well as in the Web server's root directory.
    However, changes made to the Web server are not reflected, when i
    have reset the IIS and have re - started, the Coldfusion Server.
    Am i missing something? Is there some means by which
    Coldfusion, reads the content in its own Web Server, before
    checking external, web servers. (I understand, that it may all be
    due to configuration issues. My question is, i want to know, if
    there is any log Coldfusion maintains to check, where its reading
    the source code from? i.e. If its reading from a Web Server like
    IIS or from its own in built Web server.)
    It would be helpful, if you all could throw some light on the
    same.
    Regards,
    J

    There is a little know gotcha in CFML code deployment that
    most of us
    ignore by just making sure all CFML source files are in one
    location.
    But there are TWO roots that ColdFusion will check for CFML
    files. The
    first one is in the JRUN server. This path can vary somewhat
    depending
    on exactly which flavor of CF is installed. On my Multi-home,
    Enterprise, Development machine it is here:
    C:\JRun4\servers\{cfInstanceName}\cfusion-ear\cfusion-war.
    Then if the
    CFML file is not there, ColdFusion will check the web server
    root directory.
    I can't imagine how something would be mixing these
    directories up. But
    if a CFML file ends up in both, there could definitely be
    confusion.
    Also be aware of the CF configuration options that tell
    ColdFusion to
    NOT check for updates to CFML files. This is done for
    performance
    reasons but could have the same effect as you are describing.

  • Q: Unauthorised access to coldfusion source cfm

    From the point of view, of security, how easy it for a visitor to a website to get access to the actual coldfusion source code, residing in the .cfm pages, that make up a website ?
    Are there any good practices to follow to help safeguard things, perhaps using includes and placing sensitive source code in those, located outside the public folder on the webserver ?

    Right, so a "visitor to the website" is not going to be able to see your code, on the whole, because visitors go in through the front door.  What you're asking is "how do I harden my website".
    Things to watch out for:
    * do not have debugging switched on;
    * do not have robust exception handling switched on;
    * only have files intended to be web browsed in directories that are web browseable.  On the whole, very few of your CFM files would / should fall into this category.  Someone else mentioned XML files.  In general the only XML files that should be web browseable should be things like RSS feeds.  Config files should not be web browseable.
    * have a global error handler so that if any error DOES happen, the raw error message is not displayed.  Having an error "could not find variables.theSecretPassword" gives a person a clue as to what variable names they should be trying to hack. Just display "there was an error", and nothing else.
    * clean all user input before writing it to the DB or outputting it on the screen (and that's URL variables, form variables, cookie values, and probably other things too).  Don't assume a post comes from your form.  It might not.  Even search forms input needs to be cleaned, even if it never gets stored: you're probably rendering it on the search results page, which means if there's JS in it, it'll execute as if it's come from your domain.
    * tread with caution with file uploads.  I've been able to upload a file to a CMS which allowed me to bypass admin access to the management interface, which gave me full access to CF on that box.  because CF was running as an administrator, I had full access to the machine too.
    * google "website security" and "website hardening" and read everything you can find.  This is not a trivial topic.
    Adam

  • Parse Timestamp with source code

    Somebody help me, how can i convert Date to Timestamp. i want to parse
    the Timestamp. but the parse method only return Date.
    Please help.
    Here are the source code
    Date mydate;
    String myString;
    Timestamp myTime = new Timestamp(mydate.getTime());
    myString = DateFormat.getDateTimeInstance().format(myTime);
    try {
    DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT,Locale.US);
    myTime = df.parse(myString);
    catch (ParseException e) {}
    best regards
    Nau

    I little chnage your example
    String myString;
    java.util.Date mydate = new java.util.Date();
    Timestamp myTime = new Timestamp(mydate.getTime());
    System.out.println("before " + myTime);
    myString = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.FULL, Locale.US).format(myTime);
    try {
    DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.FULL, Locale.US);
    myTime.setTime(df.parse(myString).getTime());
    System.out.println("after " + myTime);
    } catch (ParseException e) {
    e.printStackTrace();
    or yous form
    String myString;
    java.util.Date mydate = new java.util.Date();
    Timestamp myTime = new Timestamp(mydate.getTime());
    System.out.println("before " + myTime);
    myString = myTime.toString();
    myTime = Timestamp.valueOf(myString);
    System.out.println("after " + myTime);

  • Runtime parse source code

    Hi all,
    I build small java editor and I have big problem.
    Do you know how can I read name or type variable from source code and check variable is local or global .
    I found package "com.sun.mirror.declaration" but I don't know how to use interface in this package.
    How can I do it?

    Sorry,
    I mean range of variable in source code. For example:
    int b=2;
    public a() {
    String b="constructor range";
    System.out.print(b); // return "constructor range"
    I need tools or class which checks range of variable in source code and may return atribut variable.
    This tools I want assign to may application writen in Java.
    Pleeeease Help.

  • Error: missing ] after element list Source File: javascript:%20[object%20XULElement] Line: 1, Column: 9 Source Code: [object XULElement]

    Can you help me out in letting me know what this means and how I can fix this? I found it in my tools menu under error console. It was listed as a warning, but then there was a option to highlight and evaluate the original warning message that was listed as
    Warning: Expected color but found 'null'. Error in parsing value for 'background-color'. Declaration dropped.
    Source File: http://www.msn.com/
    When I cut and pasted message in the code evaluate box and pressed enter the warring message became an error then stated:
    Error: missing ; before statement
    Source File: javascript:%20Warning:%20Expected%20color%20but%20found%20'null'.%20%20Error%20in%20parsing%20value%20for%20'background-color'.%20%20Declaration%20dropped.%20Source%20File:%20http://www.msn.com/%20Line:%200
    Line: 1, Column: 10
    Source Code:
    Warning: Expected color but found 'null'. Error in parsing value for 'background-color'. Declaration dropped. Source File: http://www.msn.com/ Line: 0
    I am writing to ask for guidance on what to do and how to fix this.
    I current have Firefox as my default browser. I have IE 9 and Windows 7 home ed on my HP lap top that has AOL preloaded into it as the mail provider. I am a beginner user and when I got the computer my cousin set up Mozilla and Firefox as a search browser and I like it.
    I also have norton security

    I think, the problem is with the order (in configuration file) of path to search headers:
         /opt/oracle/product/10g/10.2.0/precomp/admin/pcscfg.cfg
              sys_include=(/usr/include,/opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.2.0/include)
              include
              include=(/usr/include)
              include=(/opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.2.0/include)
    In the filesys:
         ./usr/include/sys:
         -r--r--r-- 1 bin bin 17786 Aug 13 2007 types.h
         ./opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.2.0/include/sys:
         -rw-r--r-- 1 root system 18288 Mar 22 2008 types.h
         mode_t came from:
         #include <sys/types.h>
    sys/types.h:
         * POSIX Extensions
         typedef unsigned int uint_t;
         typedef unsigned long ulong_t;
         * POSIX and XOPEN Declarations
         #if defined(_LP64) || defined(_I32LPx)
         typedef uint_t mode_t; /* file attribute type */
         #else
         typedef ulong_t mode_t; /* (historical version) */
         #endif

  • How to display the source code for this friggin' file.

    Below is a rather lengthy bit of code that provides the behavior and attributes of a web server for OpenCyc. I need to know if I can enter some java to have the HTML source code displayed in a separate text file whenever this class returns some resulting webpage. If you have any ideas it will be greatly appreciated.
    -"Will code for foo."
    package org.opencyc.webserver;
    * Class WebServer is simple multithreaded HTTP server
    * with CGI limited to a Cyc connection on default port 3600.
    * <p>
    import java.net.*;
    import java.io.*;
    import java.util.*;
    import java.util.jar.*;
    import java.text.*;
    import org.opencyc.util.*;
    public class WebServer extends Thread {
         * Singleton WebServer instance.
        public static WebServer current;
         * Default HTTP port.
        protected static int DEFAULT_PORT = 80;
         * Default Cyc base port.
        protected static int DEFAULT_CYC_PORT = 3600;
         * Default directory to serve files from on non-Windows OS.
        protected static String DEFAULT_DIR = "/";
         * Default directory to serve files from on Windows.
        //protected static String DEFAULT_WIN_DIR = "C:\\";
        protected static String DEFAULT_WIN_DIR = "k:\\opencyc\\run\\httpd\\htdocs";
         * File cache capacity.
        protected static final int CACHE_CAPACITY = 100;
         * File cache to improve file serving performance.
        protected static Hashtable fileCache = new Hashtable(CACHE_CAPACITY);
         * Number of files served from this web server.
        protected static long nbrFilesServed = 0;
         * Number of files served from this web server that were found in the cache.
        protected static long nbrCacheHits = 0;
         * Server socket for accepting connections.
        protected ServerSocket server;
         * Directories to serve files from.
        protected ArrayList dirs;
         * Map from String (jar root) to JarFile[] (jar class path).
        protected HashMap map;
         * Webserver HTTP port.
        protected int port;
         * Cyc HTML host.
        protected String cycHost = "localhost";
         * Cyc HTML port.
        protected int cycPort;
         * Expand jar tress.
        protected boolean trees;
         * Requests flag.
        protected boolean traceRequests;
         * Constructs a WebServer object.
         * @param port the port to use
         * @param directories the directory to serve files from
         * @param trees true if files within jar files should be served up
         * @param traceRequests true if client's request text should be logged.
         * @exception IOException if the listening socket cannot be opened, or problem opening jar files.
        public WebServer() throws IOException {
            getProperties();
            server = new ServerSocket(port);
            processDirectories();
         * Class Task processes a single HTTP request.
        protected class Task extends Thread {
             * Socket for the incoming request.
            protected Socket sock;
             * Client socket to the Cyc KB HTML server.
            protected Socket cycHtmlSocket;
             * Output tcp stream.
            protected DataOutputStream out;
             * Contains the file request path for a not-found error message.
            protected String notFoundPath;
             * Contains the first line of a request message.
            protected String methodLine;
             * Contains the body of a POST method.
            protected String bodyLine;
             * Constructs a Task object.
             * @param sock the socket assigned for this request.
            public Task(Socket sock) {
                this.sock = sock;
             * Processes the HTTP request.
            public void run() {
                if (traceRequests)
                    Log.current.println("connection accepted from " + sock.getInetAddress());
                notFoundPath = "";
                try {
                    out = new DataOutputStream(sock.getOutputStream());
                    try {
                        getBytes();
                    catch (Exception e) {
                        Log.current.println("file not found: " + notFoundPath);
                        try {
                            out.writeBytes("HTTP/1.1 404 Not Found\r\n");
                            out.writeBytes("Server: Cyc WebServer\r\n");
                            out.writeBytes("Connection: close\r\n");
                            out.writeBytes("Content-Type: text/html\r\n\r\n");
                            out.writeBytes("<HTML><HEAD>\n");
                            out.writeBytes("<TITLE>404 Not Found</TITLE>\n");
                            out.writeBytes("</HEAD><BODY>\n");
                            out.writeBytes("<H1>404 - Not Found</H1>\n");
                            out.writeBytes("</BODY></HTML>");
                            out.flush();
                        catch (SocketException se) {
                catch (Exception e) {
                    Log.current.printStackTrace(e);
                finally {
                    try {
                        sock.close();
                    catch (IOException e) {
             * Reads the HTTP request and obtains the response.
             * @exception IOException when HTTP request has an invalid format.
            private void getBytes() throws IOException {
                // Below logic is complex because web browsers do not close the
                // socket after sending the request, so must parse message to find
                // the end.
                BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
                ArrayList inBytes = new ArrayList(200);
                int ch = 0;
                boolean postMethod;
                methodLine = in.readLine();
                //if (traceRequests)
                //    Log.current.println("methodLine=" + methodLine);
                bodyLine = "";
                if (methodLine.startsWith("POST /"))
                    postMethod = true;
                else
                    postMethod = false;
                //if (traceRequests)
                //    Log.current.println("postMethod=" + postMethod);
                int ch1 = -1;
                int ch2 = -1;
                int ch3 = -1;
                int ch4 = -1;
                // Read the HTTP request headers.
                while (true) {
                    ch = in.read();
                    inBytes.add(new Integer(ch));
                    ch1 = ch2;
                    ch2 = ch3;
                    ch3 = ch4;
                    ch4 = ch;
                    if (ch1 == '\r' && ch2 == '\n' && ch3 == '\r' && ch4 == '\n')
                        break;
                    if ((! postMethod) &&
                        (! in.ready()) &&
                        ch1 == -1 &&
                        ch2 == -1 &&
                        ch3 == '\r' &&
                        ch4 == '\n') {
                        inBytes.add(new Integer('\r'));
                        inBytes.add(new Integer('\n'));
                        break;
                byte[] byteArray = new byte[inBytes.size()];
                for (int i = 0; i < inBytes.size(); i++) {
                    Integer ich = (Integer) inBytes.get(i);
                    byteArray[i] = ich.byteValue();
                String headers = new String(byteArray);
                if (postMethod) {
                    String lcHeaders = headers.toLowerCase();
                    int i = lcHeaders.indexOf("content-length: ");
                    String contentLength = lcHeaders.substring(i + 16);
                    int j = contentLength.indexOf("\r\n");
                    contentLength = contentLength.substring(0, j);
                    int bodyLen = (new Integer(contentLength)).intValue();
                    for (int k = 0; k < bodyLen; k++) {
                        bodyLine = bodyLine + (new Character((char) in.read())).toString();
                String line = methodLine + "\r\n" + headers + bodyLine;
                if (traceRequests)
                    Log.current.println(line);
                if (postMethod)
                    processHttpPost();
                else
                    if (line.startsWith("GET /"))
                        processHttpGet(line.substring(4));
                    else {
                        Log.current.println("Invalid request = " + line);
                        throw new IOException();
             * Processes an HTTP GET method.
             * @param httpGetPath the path of the file to get.
             * @exception IOException if the file is not found.
            private void processHttpGet(String httpGetPath) throws IOException {
                int i = httpGetPath.indexOf(' ');
                if (i > 0)
                    httpGetPath = httpGetPath.substring(0, i);
                Log.current.println(methodLine + " from " + sock.getInetAddress().getHostName());
                i = httpGetPath.indexOf("cg?");
                if (i > 0) {
                    cycHtmlRequest(httpGetPath.substring(i + 3));
                    return;
                notFoundPath = httpGetPath;
                i = httpGetPath.indexOf('/');
                if (i < 0 || map == null) {
                    if (map == null || httpGetPath.endsWith(".jar")) {
                        for (int j = 0; j < dirs.size(); j++) {
                            String dir = (String) dirs.get(j);
                            String nativePath = dir + httpGetPath;
                            nativePath = nativePath.replace('/', File.separatorChar);
                            if (fileCache.containsKey(nativePath)) {
                                writeDataBytes((byte[]) fileCache.get(nativePath));
                                Log.current.println("...cached");
                                nbrCacheHits++;
                                nbrFilesServed++;
                                return;
                            try {
                                File f = new File(nativePath);
                                byte[] fileBytes = getBytes(new FileInputStream(f), f.length());
                                writeDataBytes(fileBytes);
                                if (fileCache.size() >= CACHE_CAPACITY)
                                    fileCache.clear();
                                fileCache.put(nativePath, fileBytes);
                                Log.current.println("...from " + nativePath);
                                nbrFilesServed++;
                                return;
                            catch (IOException e) {
                    throw new IOException();
                String jar = httpGetPath.substring(0, i);
                httpGetPath = httpGetPath.substring(i + 1);
                JarFile[] jfs = (JarFile[]) map.get(jar);
                if (jfs == null)
                    throw new IOException();
                for (i = 0; i < jfs.length; i++) {
                    JarEntry je = jfs.getJarEntry(httpGetPath);
    if (je == null)
    continue;
    writeDataBytes(getBytes(jfs[i].getInputStream(je), je.getSize()));
    nbrFilesServed++;
    return;
    throw new IOException();
    * Processes an HTTP POST method.
    * @exception IOException if the file is not found.
    private void processHttpPost() throws IOException {
    Log.current.println("POST " + bodyLine + " from " + sock.getInetAddress().getHostName());
    cycHtmlRequest(bodyLine);
    * Reads the specified number of bytes and always close the stream.
    * @param in the file to be read for subsequent downloading.
    * @param length the number of bytes to read from the file.
    * @return An array of bytes from the file.
    * @exception IOException if an error occurs when processing the file.
    private byte[] getBytes(InputStream in, long length) throws IOException {
    DataInputStream din = new DataInputStream(in);
    byte[] bytes = new byte[ (int) length];
    try {
    din.readFully(bytes);
    finally {
    din.close();
    return bytes;
    * Sends the HTML request to Cyc.
    * @param cycPath the portion of the URL which is given to the Cyc HTML server.
    private void cycHtmlRequest(String cycPath) {
    String request = sock.getInetAddress().getHostName() + "&" + cycPath + "#";
    System.out.println("request=" + request);
    ArrayList bytes = new ArrayList(10000);
    try {
    cycHtmlSocket = new Socket(cycHost, cycPort);
    System.out.println("cycHost=" + cycHost + " cycPort=" + cycPort);
    BufferedReader cycIn = new BufferedReader(new InputStreamReader(cycHtmlSocket.getInputStream()));
    PrintWriter cycOut = new PrintWriter(cycHtmlSocket.getOutputStream(), true);
    cycOut.println(request);
    cycOut.flush();
    int ch = 0;
    while (ch >= 0) {
    ch = cycIn.read();
    bytes.add(new Integer(ch));
    catch (Exception e) {
    Log.current.printStackTrace(e);
    byte[] byteArray = new byte[bytes.size()];
    for (int i = 0; i < bytes.size() - 1; i++) {
    Integer ich = (Integer) bytes.get(i);
    byteArray[i] = ich.byteValue();
    try {
    writeTextBytes(byteArray);
    catch (Exception e) {
    Log.current.println(e.getMessage());
    * Responds to the HTTP client with data content from the requested URL.
    * @param bytes the array of bytes from the URL.
    * @exception IOException if there is an error writing to the HTTP client.
    public void writeDataBytes(byte[] bytes) throws IOException {
    out.writeBytes("HTTP/1.1 200 OK\r\n");
    out.writeBytes("Server: Cyc WebServer\r\n");
    out.writeBytes("Connection: close\r\n");
    out.writeBytes("Content-Length: " + bytes.length + "\r\n");
    String prefix = (new String(bytes)).toLowerCase();
    if (prefix.indexOf("<html>") > -1)
    out.writeBytes("Content-Type: text/html\r\n\r\n");
    else
    out.writeBytes("Content-Type: application/java\r\n\r\n");
    out.write(bytes);
    out.flush();
    * Respond to the HTTP client with text content from the requested URL.
    * @param bytes the array of bytes from the URL.
    * @exception IOException if there is an error writing to the HTTP client.
    public void writeTextBytes(byte[] bytes) throws IOException {
    out.writeBytes("HTTP/1.1 200 OK\r\n");
    out.writeBytes("Server: Cyc WebServer\r\n");
    out.writeBytes("Connection: close\r\n");
    out.writeBytes("Content-Length: " + bytes.length + "\r\n");
    out.writeBytes("Content-Type: text/html\r\n\r\n");
    out.write(bytes);
    out.flush();
    * Gets properties governing the web server's behavior.
    private void getProperties() {
    port = DEFAULT_PORT;
    String portProperty = System.getProperty("org.opencyc.webserver.port", "");
    if (! portProperty.equalsIgnoreCase(""))
    port = (new Integer(portProperty)).intValue();
    Log.current.println("Listening on port " + port);
    cycPort = DEFAULT_CYC_PORT;
    String cycPortProperty = System.getProperty("org.opencyc.webserver.cycPort", "");
    if (! cycPortProperty.equalsIgnoreCase(""))
    cycPort = (new Integer(cycPortProperty)).intValue();
    Log.current.println("Cyc connections directed to port " + cycPort);
    String dirsProperty = System.getProperty("org.opencyc.webserver.dirs", "");
    dirs = new ArrayList(3);
    StringTokenizer st = new StringTokenizer(dirsProperty, ";", false);
    while (st.hasMoreTokens()) {
    String dir = st.nextToken();
    dirs.add(dir);
    trees = false;
    String treesProperty = System.getProperty("org.opencyc.webserver.trees", "");
    if (! treesProperty.equalsIgnoreCase(""))
    trees = true;
    traceRequests = false;
    String traceRequestsProperty = System.getProperty("org.opencyc.webserver.traceRequests", "");
    if (! traceRequestsProperty.equalsIgnoreCase("")) {
    traceRequests = true;
    Log.current.println("tracing requests");
    * Adds transitive Class-Path jars to jfs.
    * @param jar the jar file
    * @param jfs the list of jar files to serve.
    * @param dir the jar file directory.
    * @exception IOException if an I/O error has occurred with the jar file.
    private void addJar(String jar, ArrayList jfs, String dir) throws IOException {
    Log.current.println("Serving jar files from: " + dir + jar);
    JarFile jf = new JarFile(dir + jar);
    jfs.add(jf);
    Manifest man = jf.getManifest();
    if (man == null)
    return;
    Attributes attrs = man.getMainAttributes();
    if (attrs == null)
    return;
    String val = attrs.getValue(Attributes.Name.CLASS_PATH);
    if (val == null)
    return;
    dir = dir + jar.substring(0, jar.lastIndexOf(File.separatorChar) + 1);
    StringTokenizer st = new StringTokenizer(val);
    while (st.hasMoreTokens()) {
    addJar(st.nextToken().replace('/', File.separatorChar), jfs, dir);
    * Administrative accessor method that obtains list of directories from which files are served.
    public ArrayList getDirs() {
    return dirs;
    * Administrative method that updates the list of directories from which files are served.
    public synchronized void setDirs(ArrayList dirs) throws IOException {
    this.dirs = dirs;
    fileCache.clear();
    processDirectories();
    * Administrative accessor method that obtains number of files served.
    * @return The number of files served.
    public long getNbrFilesServed() {
    return nbrFilesServed;
    * Administrative accessor method that obtains number of files served from cache.
    * @return The number of files served from the cache.
    public long getNbrCacheHits() {
    return nbrCacheHits;
    * Administrative method that clears the file cache.
    public synchronized void clearFileCache() {
    Log.current.println("Clearing file cache");
    fileCache.clear();
    nbrFilesServed = 0;
    nbrCacheHits = 0;
    * Processes the directories from which files are served, expanding jar trees if
    * directed.
    * @exception IOException if problem occurs while processing the jar files.
    private void processDirectories() throws IOException {
    if (dirs.size() == 0)
    if (File.separatorChar == '\\')
    dirs.add(DEFAULT_WIN_DIR);
    else
    dirs.add(DEFAULT_DIR);
    Iterator directories = dirs.iterator();
    while (directories.hasNext())
    Log.current.println("Serving from " + directories.next());
    if (trees) {
    map = new HashMap();
    for (int j = 0; j < dirs.size(); j++) {
    String dir = (String) dirs.get(j);
    String[] files = new File(dir).list();
    for (int i = 0; i < files.length; i++) {
    String jar = files[i];
    if (!jar.endsWith(".jar"))
    continue;
    ArrayList jfs = new ArrayList(1);
    addJar(jar, jfs, dir);
    map.put(jar.substring(0, jar.length() - 4), jfs.toArray(new JarFile[jfs.size()]));
    * Provides the command line interface for creating an HTTP server.
    * The properties are:
    * <pre>
    * org.opencyc.webserver.port=<HTTP listening port>
    * </pre>
    * which defaults to 80.
    * <pre>
    * org.opencyc.webserver.cycPort=<Cyc connection port>
    * </pre>
    * which defaults to 3600.
    * <pre>
    * org.opencyc.webserver.dirs=<path>;<path> ... ;<path>
    * </pre>
    * with the argument enclosed in quotes if any path contains an
    * embedded space.
    * The default directory on Windows is C:
    * and the default on other systems is / the default
    * can be overridden with this property. By default, all files
    * under this directory (including all subdirectories) are served
    * up via HTTP. If the pathname of a file is <var>path</var> relative
    * to the top-level directory, then the file can be downloaded using
    * the URL
    * <pre>
    * http://<var>host</var>:<var>port</var>/<var>path</var>
    * </pre>
    * Caching of file contents is performed.
    * <pre>
    * org.opencyc.util.log=all
    * </pre>
    * If the all value is given, then all attempts to download files
    * are output.
    * <pre>
    * org.opencyc.webserver.traceRequests
    * </pre>
    * If this property has any value, then the client HTTP requests are
    * output.<p>
    * <pre>
    * org.opencyc.webserver.trees
    * </pre>
    * This property can be used to serve up individual files stored
    * within jar files in addition to the files that are served up by
    * default. If the property has any value, the server finds all jar files
    * in the top-level directory (not in subdirectories). For each
    * jar file, if the name of the jar file is <var>name</var>.jar, then any
    * individual file named <var>file</var> within that jar file (or within
    * the jar or zip files referenced transitively in the Class-Path manifest
    * attribute, can be downloaded using a URL of the form:
    * <pre>
    * http://<var>host</var>:<var>port</var>/<var>name</var>/<var>file</var>
    * </pre>
    * When this property has any value, an open file descriptor and cached
    * information are held for each jar file, for the life of the process.
    * @param args an unused array of command line arguments.
    public static void main(String[] args) {
    Log.makeLog();
    System.out.println("OpenCyc Web Server");
    try {
    // Launch thread to accept HTTP connections.
    current = new WebServer();
    current.start();
    catch (IOException e) {
    e.printStackTrace();
    * Just keep looping, spawning a new thread for each incoming request.
    public void run() {
    try {
    while (true) {
    // Launch thread to process one HTTP request.
    new Task(server.accept()).start();
    catch (IOException e) {
    e.printStackTrace();

    JLundan,
    I want to thank you for responding to the thread I started on the forum at java.sun.com. Your solution to my problem of needing to print the code of the html pages that the file I included generates was just what I was looking for. However, I have some further questions to ask, if you don't mind. To clarify my task I should say that your rephrasing of the problem is accurate: "You wan't to display the contents of the HTML file that the web server produces in response of client's request?"
    Yes, this is what I need to do, but also it needs to display the source code of that html file that the server produces in response to the client's request. Also, in this case, I am the client requesting that the server return some html file, and I'm not sure where the server is. But the webserver.java file that I shared on the forum is on my local machine. I was wondering if I could modify this webserver.java file at my home so that any html file the server returns to me would automatically display the source code. This is a school project of mine and I am stuck on this one thing here.
    Further, where would I put the "foo.html" file so it can be written to?
    FileOuputStream fos = new FileOutputStream("foo.html");
    fos.write(bytes);
    fos.close();
    Thanks so much for your help. I look forward to your response, at your convenience.
    Regards

  • Getting Error in java mapping: Parsing empty source. Root element expected!

    Hi Experts,
       I am using java mapping for schema validation of input message. I have followed all the standard procedures and implemented the java class in the interface mapping.
    My interface mapping is like this:
    OrderData --->Java Class ---SchemaValidate
                         Mesg Map ---OrderData_to_BAP --->BAPI Msg
    So first I want to validate the schema of the input message. If the input message is invalid then XI should throw an exception. Then I use the actual message mapping to map the input order data to the BAPI input parameters.
    In the java code I am using xerces parser.
    The java code works fine when I run it as a standalone application.
    The interface mapping also works fine if I don't include the java mapping. Ofcourse schema validation does not happen.
    But when I test the interface mapping by including the java mapping then I am getting the error:
    Call method execute of the application Java mapping SchemaValidate
    Java mapping SchemaValidate completed. (execute() of SchemaValidate
    com.sap.aii.utilxi.misc.api.BaseRuntimeException: Parsing an empty source. Root element expected!
    What am I doing wrong? Why it is not getting the root element?
    My Java code is as follows:
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.StreamTransformationException;
    import java.io.*;
    import java.util.Map;
    import javax.xml.parsers.*;
    import org.xml.sax.helpers.*;
    import org.xml.sax.*;
    import org.apache.xerces.jaxp.*;
    Sample mapper for SAP-XI
    @author Gopal
    public class SchemaValidate implements StreamTransformation {
        //Constants when using XML Schema for SAX parsing.
         static final String JAXP_SCHEMA_LANGUAGE =
         "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
         static final String W3C_XML_SCHEMA =
         "http://www.w3.org/2001/XMLSchema";
         static final String JAXP_SCHEMA_SOURCE =
         "http://java.sun.com/xml/jaxp/properties/schemaSource";
    Injection of mapping parameters
    from integration engine
    @param map Map with configuration data
        public void setParameter(Map map) {
    Mapping implementation
    @param inputStream Input data from integration engine
    @param outputStream Output data to integration engine
        public void execute(InputStream inputStream,
                            OutputStream outputStream)
          throws StreamTransformationException {
            try {
                  // obtain an object of class javax.xml.parsers.SAXParser,
                  SAXParserFactory spf = SAXParserFactoryImpl.newInstance();
                  spf.setNamespaceAware(true);
                  spf.setValidating(true);
                  SAXParser sp = spf.newSAXParser();
                  // setup the schema file
                  sp.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
                  sp.setProperty(JAXP_SCHEMA_SOURCE, new File("IOReqMsgSchema.xsd"));
                  //parse the input xml using the given schema
                  sp.parse(inputStream, new ParseErrorHandler());
            catch(SAXException se) {
              se.printStackTrace();
            catch ( Exception e ) {
              throw new StreamTransformationException( e.getMessage() );
    My input message is :
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:OrderCreate_request xmlns:ns0="mynamespace">
       <ORDER>HTEST1234567</ORDER>
       <ORDER_TYPE>z001</ORDER_TYPE>
       <ORDER_NAME>Test Order</ORDER_NAME>
       <CO_AREA>INTC</CO_AREA>
       <CCTR_POSTED>1234567890888888888</CCTR_POSTED>
       <CURRENCY>USD</CURRENCY>
       <PERSON_RESP>12345679</PERSON_RESP>
    </ns0:OrderCreate_request>
    Kindly help! please this is urgent!!!!!!
    Thanks
    Gopal
    Edited by: gopalkrishna baliga on Feb 28, 2008 9:34 AM

    Hi Stefan,
       I did the code changes to return output stream and the java code works perfectly in standalone mode in my PC.
       But when I use the same in the Java mapping with XI then It throws an error "Getting Error in java mapping: Parsing empty source. Root element expected!".
    My XI J2EE server has JDK1.4.3.11.
    Is there any limitation of using SAX parser in XI? If Yes, then which parser should be used for schema validation in XI?
    I have included the XSD file for schema validation along with class files in the .jar file. This jar file is then imported in XI repository. Is the XI engine not able to read the XSD file?
    Do I have to handle reading XSD file differently? Any suggession how?
    Is this parser error due to some security access?
    Kindly help me! I have been struggling with this problem since 2 weeks. I will be greatfull to you if you can help me.
    Thanks
    Gopal

  • Customize interface without touching the source code

    My VP of of marketing is at it again. I have pasted in the exact email that he sent me. If anyone has ideas or suggestions or knows if Forms 9i has this built-in capability, please let me know.
    Thanks.
    Can you post this on metalink and see if someone at Oracle (or elsewhere) has an answer for us? Somehow, other LIMS developers are distributing LIMS products that allow their users to customize the interface without touching the source code -- no impact on their ability to take new releases. How do they do that?
    Here's my question:
    Anyone familiar with the Tools / Forms / Design this Form feature in MS Outlook? This allows a mere mortal to actually create and publish a custom Outlook form (could be a Contact, Task, Note, Journal, etc. form) across the organization. Is there such a capability built into Oracle9i Forms? In other words, can a developer easily build and distribute an Oracle software app such that the end-user can use an administrative tool to modify the interface/forms, add fields, change field names, move things around on the form, change colors, etc. -- without needing the Oracle Developer tool used by the original software developer, along with source code?
    Here's my original email from a few months ago:
    Our VP of marketing has been on my case about the ability to allow customers to "map" a form label (prompt) to a "custom" label of their choosing. The only way I know to do this is to create a "mapping" table and each time a form opens have code in the Post-Query trigger that changes the prompt of each column to the label that is in the "mapper" table. My fear here is Performance. Also, if the user closes that form and comes back to it - that logic has to be executed again - once again Performance. We have thought about the global variable idea, but we have over 100 tables with approx. 20 columns each. That's alot of globals to carry around. What's the overhead of carring around let's say 150 global variables?
    My questions to all of you are:
    1) Is anyone else doing this exact thing?
    2) If so, what is the performance hit?
    3) Is there a way to "remember" after the first time it paints - until the application is closed (not just that form) - other than global variables?
    4) Is there a solution already in place within Forms for this?
    5) Is there newer technology that has overcome this problem?
    My VP doesn't like the mapping idea. He wants to know isn't there a better way instead of mapping all the fields. Isn't there some simple utility provided by Oracle that allows the user to simply change the form labels (no, he's not talking about Oracle Developer). He is a real Outlook nut. So he's always comparing everything to how Outlook works. This is how it works in Outlook -- you click on Design Form, modify it, then install it on the machine. Surely Oracle must have something like this. He thinks we're asking the wrong question or not asking it in the right way. I'm not sure how else to ask it. Our users want to see "Date of Birth" spelled out instead of "DOB" as the label for a column on a form. Is there a way for them to take the fmx and change that label? Is there a better way other than storing this in a table and querying it up each time the form opens? Yes, I could use a global so I don't have to query it from the database every time, but I still have to evaluate every time the form is opened during that session to see which label I need to use and then set the prompt accordingly. Our VP doesn't like this, he wants this to be a one time change.
    Thanks so much for you help,
    Tina

    Hmmm.... either your VP of marketing or the users have too much time on their hands. ;-)
    I would go with a lookup table. If your database is responsive and you index the table by form name, you can retrieve a number of rows and setup the screen quickly enough that nobody would notice any time lag.
    If there aren't too many titles stored in the form, you could use a PLL library procedure and stuff all of them into a few globals -- just stack them into a single string separated by an odd character, like maybe chr(3). Then when the form is called again, it could first check to see if the globals exist, and parse the titles from there.
    But be careful about changing field titles. If they change DOB to Date of Birth, the length changes, and so you need to determine where the extra length goes. The title field must be wide enough and the text justification should be set properly.

  • Formatting source codes

    I don't if i post it in the correct forum.
    I am trying to find a way to break up a sources code so that it can be interpreted in the form of methods,fields,constructors so that i can exact out the information, like how Netbeans extract the information.
    Any one can help ?

    This could mean one of two things:
    1) Format source so that it is easy to parse as you described.
    That is easy. Just prepend comments like /*CONSTRUCTOR*/ and have your parser look for those.
    2) Parse ANY source file.
    Well.. obviously the compiler knows the difference, which should make it obvious that you can devise a set of rules that does so (like, if the method name is the same as the class name, it is counted as a constructor... if it is prepended with a primitive type or class name it is obviously a variable and not a method, etc.). But that is going to be a world class pain in the neck.
    This is assuming that you want to break up the actual source using a parser. If you are happy just getting the method signatures and so forth you can use reflection.
    Why in the world would you need to do this?
    Drake

  • [svn] 2891: Add the web-tier compiler for J2EE to the Flex open source code base.

    Revision: 2891
    Author: [email protected]
    Date: 2008-08-19 07:35:22 -0700 (Tue, 19 Aug 2008)
    Log Message:
    Add the web-tier compiler for J2EE to the Flex open source code base.
    Added Paths:
    flex/sdk/trunk/modules/webtier/
    flex/sdk/trunk/modules/webtier/bootstrap/
    flex/sdk/trunk/modules/webtier/bootstrap/build.xml
    flex/sdk/trunk/modules/webtier/bootstrap/java/
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/META-INF/
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/META-INF/taglib.tld
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/default.properties
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/bootstrap/
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/bootstrap/BootstrapBodyTag.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/bootstrap/BootstrapClassLoader.jav a
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/bootstrap/BootstrapFilter.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/bootstrap/BootstrapServlet.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/bootstrap/BootstrapTag.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/bootstrap/TagGenerator.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/server/
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/server/j2ee/
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/server/j2ee/jsp/
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/server/j2ee/jsp/FlashVarTa g.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/server/j2ee/jsp/MxmlTag.ja va
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/server/j2ee/wrappers/
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/server/j2ee/wrappers/ATGFi lterConfig.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/server/j2ee/wrappers/ATGHt tpServletRequest.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/server/j2ee/wrappers/ATGSe rvletConfig.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/server/j2ee/wrappers/ATGSe rvletContext.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/server/j2ee/wrappers/J2EEW rapper.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/util/
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/util/FileUtils.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/flex/webtier/util/J2EEUtil.java
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/hitachi.properties
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/interstage.properties
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/jrun.properties
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/tomcat.properties
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/weblogic.properties
    flex/sdk/trunk/modules/webtier/bootstrap/java/src/websphere.properties
    flex/sdk/trunk/modules/webtier/build.properties
    flex/sdk/trunk/modules/webtier/build.xml
    flex/sdk/trunk/modules/webtier/coldfusion/
    flex/sdk/trunk/modules/webtier/coldfusion/build.xml
    flex/sdk/trunk/modules/webtier/coldfusion/lib/
    flex/sdk/trunk/modules/webtier/coldfusion/lib/cfmx_bootstrap.jar
    flex/sdk/trunk/modules/webtier/coldfusion/src/
    flex/sdk/trunk/modules/webtier/coldfusion/src/java/
    flex/sdk/trunk/modules/webtier/coldfusion/src/java/coldfusion/
    flex/sdk/trunk/modules/webtier/coldfusion/src/java/coldfusion/bootstrap/
    flex/sdk/trunk/modules/webtier/coldfusion/src/java/coldfusion/bootstrap/BootstrapBodyTag. java
    flex/sdk/trunk/modules/webtier/coldfusion/src/java/coldfusion/bootstrap/BootstrapTag.java

    JLundan,
    I want to thank you for responding to the thread I started on the forum at java.sun.com. Your solution to my problem of needing to print the code of the html pages that the file I included generates was just what I was looking for. However, I have some further questions to ask, if you don't mind. To clarify my task I should say that your rephrasing of the problem is accurate: "You wan't to display the contents of the HTML file that the web server produces in response of client's request?"
    Yes, this is what I need to do, but also it needs to display the source code of that html file that the server produces in response to the client's request. Also, in this case, I am the client requesting that the server return some html file, and I'm not sure where the server is. But the webserver.java file that I shared on the forum is on my local machine. I was wondering if I could modify this webserver.java file at my home so that any html file the server returns to me would automatically display the source code. This is a school project of mine and I am stuck on this one thing here.
    Further, where would I put the "foo.html" file so it can be written to?
    FileOuputStream fos = new FileOutputStream("foo.html");
    fos.write(bytes);
    fos.close();
    Thanks so much for your help. I look forward to your response, at your convenience.
    Regards

  • Getting an Object Identifier String given a line of source code? HELP!

    (forgot to close the code tag on that last one!)
    Hi there,
    I am in desparate need of getting the object identifier given a particular line of source code. I need this for the debugger I'm writing, and since the jdb forum never gets reponses; just more unanswered questions.
    Right so, here's my problem in more detail. I can find out when a method is called in the Java virtual machine, and what its name is, and arguments and values and such like - using the Java Debugging Interface. BUT: unfortunately I cannot get the object identifier used in the source code that generated this call. I can however get a unique long id that identifies this object .. if that helps?(thinking hashtables here maybe?!)
    So, I may know that the constructor of EddClass has been called, and this the following line generated this call:
    EddClass edd = new EddClass();.. so what I need is a fail safe way of finding out "edd" from this - given all types of method calls.
    This is quite tricky because there are loads of ways methods can be called e.g.
    tty.getClassExclusions(); // Here I would know getClassExclusions had been called, and I would need to find out the object identifier "tty" called it
    Temp a, b, c;
    a = b = c = new Temp(); // Here I would know the constructor for Temp had been called, but now I would just want to know "c"
    AnotherEg ae = (new Egg()).getAnotherEg(); // and in this last case if I had found out that the Egg constructor had been called, I don't want to find out any object identifier from this line of code - since the object is anonymous; however if I had found out that getAnotherEg() had been called I would want "ae"Ok, well - please help: I'm making a Java Animator that will be freely available - that serves to graphically animate the execution of another java program. It'd be cool if one of you guys could help make it really cool. Plus there are Dukes available!!
    - Edd.

    this is quite a complicated question I think!
    I'm not sure but you maybe need to know just about the whole java lang. spec to do this.
    I'm sure there are plenty of free java parsers around, so unless you have a lot of time available its probably best to download one, figure some way to feed it a single line from within a code block, and extract its symbol table.
    Once you have the symbol table, there will probably be some other data available from the parser to say which are identifiers.
    Its then up to your debugger to figure out which one is the interesting one!
    sorry this is so vague but I think you've asked for something that is quite involved!
    asjf

Maybe you are looking for

  • New MacBook video on youtube?

    This youtube video has a person showing us the new MacBook, it has the edge to edge keyboard and top right earphone jack, is this legitimate? https://www.youtube.com/watch?v=pF9NWy_rRF4

  • Newbie to JSP, Need to convert some ASP code to work for JSP

    Can I get some aid in converting the following ASP code to work using JSP. I have never used JSP before but I now need to because of a recent server change. <% DIM URL URL = LCase(Request.ServerVariables("URL")) if InStr(URL, "/about/") then %> <p>Ab

  • Does transmission damage my hdd?

    It is said, that transmission has very small amount of disk cache and utilizes hdd more intensively, than some other clients. That's why hdd lifetime is slight reduced. But AFAIK, there is disk cache on OS level also. All writes and reads are cached.

  • Problem with Discoverer Workbook in Purchasing Intelligence menu

    Hello We have implemented out-of-the-box Purchasing Intelligence (PI) that comes with the Oracle e-Business Suite. There is only one Discoverer Workbook - 'Contract Savings Analysis' workbook which cannot be accessed from the Applications. This workb

  • Help with Adobe Premiere Elements 8.0

    Hello! I recently began fooling around with Premiere elements and I had a couple of questions about it:  First, if you could please watch this video:  http://www.youtube.com/user/iTerabithia#p/search/6/01qfQSyq1WI      In the almost beginning it show