Codebase syntax

Greetings,
Can anyone inform me of the proper syntax for a relative classpath when setting the codebase property? I have all my classes in a subdirectory .\classes relative to my current directory. If I specify the file location explicitly, as in the following command:
java -cp .\classes -Djava.rmi.server.codebase=file:/c:\currentdir\classes/ RMIServer
the server works fine. But when I try the following:
java -cp .\classes -Djava.rmi.server.codebase=file:/.\classes/ RMIServer
the registry cannot find the _stub file. I've tried many permutations and can't find any documentation on the syntax. I need to set a relative path so this server can be loaded onto any machine in any directory.
Any help would be appreciated.

Hi,
I must say that relative codebase syntax has not much sense . The codebase property is read by the registry and the client as well if they need to dynamically download class definitions (stubs).
They get the URL from the codebase and downloads the proper stubs from that location. If you specify a "file://..." URL then you must make sure, that the specified objects (jar, dir) are accessible from the clients' and the registry's machine...
(well, if the registry is started from a directory, from where it can find relatively the specified stubs then it's ok...)
In your first example the server and the registry (and the client also) are started on the same computer, arent't they? But if you moves the registry to an other computer the registry won't be able to find your stubs...
Anyway java.rmi.server.codebase property can be set in the server program, too. Put it in the main method (or somewhere else), before binding the server object ...
System.setProperty("java.rmi.server.codebase", <the URL of the stub files>));
Naming.rebind(...)
...Sorry,
Sanyi

Similar Messages

  • RMI codebase syntax

    Greetings,
    Can anyone inform me of the proper syntax for a relative classpath when setting the codebase property for RMI directory binding? I have all my classes in a subdirectory .\classes relative to my current directory. If I specify the file location explicitly, as in the following command:
    java -cp .\classes -Djava.rmi.server.codebase=file:/c:\currentdir\classes/ RMIServer
    the server works fine. But when I try the following:
    java -cp .\classes -Djava.rmi.server.codebase=file:/.\classes/ RMIServer
    the registry cannot find the RMIServer_stub file in the \classes directory. I've tried numerous permutations to no avail, and I can't find any documentation on the syntax. I need to set a relative path so this server can be loaded onto any machine in any directory.
    Any help would be appreciated.

    Well, I didn't get any reply when I submitted this question on graveyard shift, perhaps the daytime forum folks can help (or I should delineate: North and South American daytime folks; and, perhaps Asian, African, Australian or European evening folks may still be online. Let's not leave out Antarctica...it's possible).
    Does anyone know the answer to the above post or where I can find the documentation for the syntax?
    Thanks in advance.

  • Error - 1242021 Syntax error

    So I am attempting to grant access for JExport. Please help.
    MAXL> grant codeBase "file:\\Hyperion\AnalyticServices\java\udf\ExportCDF.jar" {
    permission java.security.AllPermission};
    I am receiving this message:
    ERROR - 1242021 - (1) Syntax error near ['codeBase'].
    I have no idea if this is where I am suppose to enter this in or what.
    PLEASE HELP!

    This should be a value you add to the udf.policy file on the server. It is not something MaxL can do for you. If on Window, notpad will work fine, if on UNIX VI

  • Syntax Error In Javascript Popup Window

    I'm wondering if anybody can help me out here with a curious bit of code. I'm using GoLive 9 to generate Javascript popup windows. They seem to work fine, but when I check the syntax I get these errors:
    Line 22 Unexpected PCDATA
    Line 24 The Corresponding start tag is missing
    Specifically, it references this code:
    </script>
    //-->
    </script>
    But every time I try to delete or modify those lines I lose the link to my css file and can't link it back. Does anybody out there with a whole lot more brains than me have a solution? Remember, I'm stupid, so if you have a fix I'd appreciate it being explained as simply as possible. Thanks. BTW here's the entire code for the Javascript popup page below:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <meta name="generator" content="Adobe GoLive" />
    <title>1408</title>
    <script type="text/javascript"><!--
    <script type="text/javascript">
    //Global var to store a reference to the opened window
    var openedWindow;
    function openWindow()
    openedWindow = window.open('moreinfo.htm');
    function closeOpenedWindow()
    openedWindow.close();
    </script>
    //-->
    </script>
    <link href="../../../BAD/michaelthibault.com/css/agl-styles.css" rel="stylesheet" type="text/css" media="all" />
    <link href="../../../BAD/michaelthibault.com/css/java.css" rel="stylesheet" type="text/css" media="all" />
    <style type="text/css" media="all"><!--
    a:link { color: #838383; }
    a:active { color: #838383; }
    .dsR1 /*agl rulekind: base;*/ { width: 480px; height: 260px; }
    #media { position: absolute; top: 50px; left: 50px; width: 480px; height: 260px; z-index: 1; }
    #pause { position: absolute; top: 320px; left: 50px; width: 180px; height: 15px; z-index: 2; }
    #close_a { position: absolute; z-index: 3; top: 336px; left: 50px; width: 180px; height: 19px; }
    --></style>
    </head>
    <body>
    <div id="media">
    <object class="dsR1" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="204" width="480" align="left">
    <param name="enablejavascript" value="true" />
    <param name="bgcolor" value="#1a1a1a" />
    <param name="src" value="../../media/01_trailers/1408_tlr1r_h.480.mov" />
    <param name="autoplay" value="true" />
    <param name="controller" value="false" />
    <embed align="left" height="204" pluginspage="http://www.apple.com/quicktime/download/" src="../../media/01_trailers/1408_tlr1r_h.480.mov" type="video/quicktime" width="480" controller="false" autoplay="true" bgcolor="#1a1a1a" enablejavascript="true"></embed>
    </object></div>
    <div id="pause">double click in center to pause</div>
    <div id="close_a">
    <a href="javascript:self.close();">close window</a></div>
    <p></p>
    </body>
    </html>

    You have a script tag nested inside another script tag. Try changing this:
    < script type="text/javascript">< !--
    < script type="text/javascript">
    //Global var to store a reference to the opened window
    var openedWindow;
    function openWindow()
    openedWindow = window.open('moreinfo.htm');
    function closeOpenedWindow()
    openedWindow.close();
    < /script>
    //-->
    < /script>
    ...to this...
    < script type="text/javascript">< !--
    //Global var to store a reference to the opened window
    var openedWindow;
    function openWindow()
    openedWindow = window.open('moreinfo.htm');
    function closeOpenedWindow()
    openedWindow.close();
    //-->
    < /script>

  • Accessing codebase through http in RMI

    Hi
    I am C prgrammer and now badly stuck wid my new found luv- java!
    I am working on RMI, where I have a simple client program, sending Hi, Hellos to my server program. Then I created a new class in my rmi client side and tried to send it through the interface to the server. Server gave unmarshelling errors.. which i guess is bcoz it doesnt know about the classes in client side. I follwed similar threads here, and could make out that i must specify a codebase visible to the server where it can see the client files..
    I created a policy file in the server as this-
    grant codeBase "file:/E:/work/java/"{
    permission java.security.AllPermission;
    permission java.net.SocketPermssion "*","accept,connect,resolve";
    My client fils are in E:/work/java ...
    I am getting errors in server side--
    Exception in thread "RMI TCP Connection(1)-127.0.0.1" java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:2014 accept,resolve)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
    and client says--
    java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
    java.io.EOFException
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:203)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
    at rmi.client.RmiClient.main(RmiClient.java:33)
    Caused by: java.io.EOFException
    i know I have done a blunder there.. I also followed from prev threads that I have to specify the codebase as a URL, but again I dont know how to make my client files accessilbe through http ? my files are in say E:/work/java/client directory.... how to access this through URL?
    also i tried this on linux where my files are in root/client/ ..
    Can you java Gurus help me in solving this, in both the windows and linux versions..
    Your help is gr8ly anticipated
    thankssss

    Any time you see this:
    java.security.AccessControlException: access denied (XXX)for any XXX you need to add the permission XXX inside the brackets to your security .policy file. The syntax required is similar but not identical - read the Javadocs.

  • CodeBase for Applet called from Javascript

    I have a Search applet that is called from an HTML form in a browser when a button in the form is pressed. The Applet searches files in a folder/subfolders and uses a JSObject to create a new page for the browser with results. Up until recently I was using the plugin from jre 1.3.1 with the appropriate FilePermission entries in the .java.policy file and the applet worked as expected. IE if I added new folders to be searched, I had to add new entries to the policy file to give permission.
    I then installed jre 1.4.2 and the applet started getting Security problems stating the program did NOT have FilePermission. I tried several changes to the policy file and finally found that if I put the FilePermission entries in the empty(Global) codeBase the applet would work.
    What changed between jre 1.3.1 and 1.4.2?
    I would like to understand how the system works, ie where is the true codeBase and not cop-out with giving global permission.
    Any suggestions?
    Also the Java Tutorial shows a Windows syntax for a path (uses \) : C:\testing\-
    The policytool gets confused when I try to enter this. I use double \\ and it takes it OK when I do a Save. But later if I use policytool again to make changes somewhere else in the policy file, the \\ are removed and I end up with: C:testing- in the policy file. So I do it manually with an editor.
    Norm

    I would agree. Remember that the changes you make to the policy file apply to all applets that will ever be run on the system, not only to your applet.

  • SWF Viwere Syntax

    Hi,
    I have some SWF files created using Captivate that we wish to
    publish to an INTRAnet site. On this site we have the benefit of
    knowing that ALL users have a local network drive available as the
    mapped "I:" drive. We'd like to distribute the SWF files to each
    local site where they would be installed in the I:\IFTraining
    folder. Now, we should be able to reference these files in the
    INTRAnet website. Unfortunately, I'm having problems with the
    syntax:
    <object
    classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6, 0,29,0"
    width="800" height="600" ID="Captivate1">
    <param name="movie"
    value="file:////i:/IFTraining/TDITransfers20061101.swf">
    <param name="quality" value="high">
    <param name="menu" value="false">
    <param name="loop" value="0">
    <embed
    src="file:////i:/IFTraining/TDITransfers20061101.swf" width="800"
    height="600" loop="0" quality="high"
    pluginspage="https://www.macromedia.com/go/getflashplayer"
    type="application/x-shockwave-flash" menu="false"></embed>
    </object>
    How should I correctly refer to the SWF files? I've tried a
    bunch of changes in syntax with no luck.
    Thanks for the help.

    make it in relation to the calling html page...
    most likely its just
    <param name="movie" value="TDITransfers20061101.swf">
    <embed src="TDITransfers20061101.swf" ....>
    the other possibility is just:
    IFTraining/TDITransfers20061101.swf

  • SWF Viewer Syntax

    Hi,
    I have some SWF files created using Captivate that we wish to
    publish to an INTRAnet site. On this site we have the benefit of
    knowing that ALL users have a local network drive available as the
    mapped "I:" drive. We'd like to distribute the SWF files to each
    local site where they would be installed in the I:\IFTraining
    folder. Now, we should be able to reference these files in the
    INTRAnet website. Unfortunately, I'm having problems with the
    syntax:
    <object
    classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6, 0,29,0"
    width="800" height="600" ID="Captivate1">
    <param name="movie"
    value="file:////i:/IFTraining/TDITransfers20061101.swf">
    <param name="quality" value="high">
    <param name="menu" value="false">
    <param name="loop" value="0">
    <embed
    src="file:////i:/IFTraining/TDITransfers20061101.swf" width="800"
    height="600" loop="0" quality="high"
    pluginspage="https://www.macromedia.com/go/getflashplayer"
    type="application/x-shockwave-flash" menu="false"></embed>
    </object>
    How should I correctly refer to the SWF files? I've tried a
    bunch of changes in syntax with no luck.
    Thanks for the help.

    make it in relation to the calling html page...
    most likely its just
    <param name="movie" value="TDITransfers20061101.swf">
    <embed src="TDITransfers20061101.swf" ....>
    the other possibility is just:
    IFTraining/TDITransfers20061101.swf

  • Problems using codeBase in policy file

    Hi,
    I'm experiencing problems using the codeBase option with the grant option in my .policy file.
    I want to start a 'manager' which has limited access to files. This manager starts workers (threads) who need complete access to... everything. I know I need to use the codebase identifier to separate those two groups of rights, but I don't seem to get the codebase right. The worker threads don't get any rights at all. The manager works fine (without any codebase definition).
    I've used full and relative pathnames, with and without '/-' or '/*'
    The file I use currently is (slightly truncated :), pathnames are package names:
    grant codeBase "file:com/response/timber/broker/*" {
    permission java.security.AllPermission;
    grant {
    permission [..].FilePermission "manager.properties","read";
    permission [..].SocketPermission "localhost","connect,[..]";
    permission [..].FilePermission "com/[..]/jaxb.properties","read";
    According to the various examples on the Internet, it should work, but ofcourse it doesn't. Could the use of threat have any influence on the defined security?

    All I can say is I hope someone gives you
    (and indirectly me) the answer. I've got a
    serious problem granting special permissions
    in Sun ONE to a servlet and it's jars.
    One strange thing (to me), is that the format
    for the .policy file seems quite different between
    say Tomcat and Sun One. Things that work in Tomcat
    don't work for Sun ONE. But I thought the underlying
    vm et al was all the same! So did I... Why does
    this have to be so Opaque? Why different syntax
    platform to platform? Its all Java!

  • Syntax error while creating a invoice

    Hi I am new to this forum hope u guys can help me out,
    I am ruuning following syntax for creating an invoice and for this error message is coming which is given below.
    Select aadrnr astdc1 b~name1 into table inv_head1
    From kna1 as a inner join adrc as b on aadrnr = baddrnumber.
    Unknown column name "A~STDC1" . field list. . field list. field list.

    Hi Rupesh,
    u have to mention as " select ... into corresponding fields of
    table ... ".
    regards
    Chaitanya.

  • Syntax error while writing a select query.

    Hi all,
    I have a requirement where I have to pick a value if the text for that value is
    MYCARu2019S Lovliest Car.
    And so I wrote a query that
    SELECT     RUECK INTO XRUECK FROM AFVC WHERE ltxa1 = ' MYCARu2019S Lovliest Car'.
                    ENDSELECT.
    But it gives me a syntax error saying     
    u201CLiterals taking up more than one line not permittedu201D.
    Can some one tell me what is wrong. I need to select RUECK value from AFVC  table if
    ltxa1 value is ' MYCARu2019S Lovliest Car'.
    Kindly help what is going wrong...
    Regards,
    Jessica Sam

    Hi,
    Narendran is right use two single quotes.
    also careful wile comparing string. i think as you write ltxa1 value is ' MYCARu2019S Lovliest Car'.
    so while comparing you must not use space just before staring use the following
    SELECT  rueck INTO xrueck FROM afvc WHERE ltxa1 = 'MYCAR''S Lovliest Car'. " Not use Space before M
    ENDSELECT.
    Hope will help you.
    Kind Regards,
    Faisal

  • Syntax error while running a driver program

    Hi experts,
                 I have developed a smartforms,in which i have declared the following,
                    ITAB TYPE TABLE OF MARA, in import tab of form interface...
    and in se38 i have declared...
    data: itab like mara occurs 0.
    bujt when i am running this program, i am getting syntax error "ITAB" is neither specified under "TABLES" nor defined as internal tabels..
    plz tell me why this probleming is occuring?and how can i solve this....
    thnks n regards,
    Ashmita.

    in form interface try to declare in tables tab
    or
    global data > types tab and declare global  table using that type.

  • Select-options in SELECT query - syntax error

    Hi all,
      I get the error below when I try to use the select options in a SELECT query . Please help me.
    "The IN operator with "SO_AWART" is followed neither by an internal
    table nor by a value list."
    The code i have used(Logical database  PNP is used):
    TABLES: pernr,
            catsdb.
    INCLUDE ztime_cwtr_top.    " global Data
    INCLUDE ztime_cwtr_f01.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
    SELECT-OPTIONS SO_AWART FOR CATSDB-AWART.
    PARAMETERS P_THRES TYPE I.
    SELECTION-SCREEN END OF BLOCK B1.
    Get data from CATSDB table. Workdates within the date interval are considered.
      SELECT pernr workdate awart catsquantity beguz enduz status
      FROM catsdb
      INTO TABLE it_catsdb
      WHERE pernr  = pernr-pernr    AND
           workdate GE pn-begda     AND
           workdate LE pn-endda     AND
           status   IN ('20', '30') AND
           awart    IN  so_awart .
          awart    IN ('1100', '1137', '1138', '1139', '1140',
                      '1147', '1148', '1149', '1157', '2003' ).
    when I give the values directly i do not get any syntax error, but when I use select options in the where condition I get the syntax error.
    I have tried different options like using only the select-options in the where condition.
    Thanks in advance.....
    Madhu

    Solved.
    Code with syntax error:
    include z...top .
    include z...fo1.
    select-options: xxxxxxx
    Code  with no syntax error:
    select-options: xxxxxxx
    include z...top .
    include z...fo1.
    Thanks for all your help,
    Madhu

  • Date syntax for MySql query in SQL Reporting Services

    I am currently trying to link a mysql Stored Procedure to a Microsoft SQL Reporting Server. It is coming up with a Syntax error. I believe this is down to the
    Date_from and Date_to Parameters. The query is below any help would be appreciated 
    DELIMITER $$ 
    USE `mydb`$$ 
    DROP PROCEDURE IF EXISTS `DTI`$$ 
    CREATE DEFINER=`linkeduser`@`%` PROCEDURE `DTI`(IN date_from DATETIME, 
    IN date_to DATETIME) 
    BEGIN 
    SELECT title,gender,firstname,lastname,address1,town,postcode,dob,IF(co.start_date = '00-00-0000', '', CAST(DATE(co.start_date) AS DATE)) AS 'StartDate' 
    FROM cf_user AS us 
    JOIN ca_compliance AS co ON co.user_id = us.user_id 
    WHERE co.start_date BETWEEN date_from AND date_to; 
    END$$ 
    DELIMITER ;

    Hello,
    The dataset query runs on the external data source.
     In your case, you create a report by retrieve data from MySQL database with a stored procedure. The stored procedure will run on MySQL Server and return the result in the Report designer or Report Builder. To solved this issue, please execute the stored
    procedure on the MySQL database and check the syntax error.
    Regards,
    Fanny Liu
    Fanny Liu
    TechNet Community Support

  • Can not use SUM in a simple query because of a syntax error?

    Hi
    Thank you for reading my post.
    I am trying to execute the following query:
    q = em.createQuery("SELECT SUM((NE.pipeLength - 0.6)+((NE.networkDepth-NE.initialDepth)*0.41)+ NE.standLenght)  FROM NExpansion NE  where (( NE.contract.contractor=:contractor) AND (NE.pDiameter=:diameter))");
                  q.setParameter("contractor", contractor);
    q.setParameter("diameter", diameter);
         l =  (Long) q.getSingleResult();And I get the following error:
    Caused by: Exception [TOPLINK-8025] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.EJBQLException
    Exception Description: Syntax error parsing the query [SELECT SUM((NE.pipeLength - 0.6)+((NE.networkDepth-NE.initialDepth)*0.41)+ NE.standLenght)  FROM NExpansion NE  where (( NE.contract.contractor=:contractor) AND (NE.pDiameter=:diameter))], line 1, column 12: unexpected token [(].
    Internal Exception: line 1:12: unexpected token: (
            at oracle.toplink.essentials.exceptions.EJBQLException.unexpectedToken(EJBQLException.java:389)
            at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.handleANTLRException(EJBQLParser.java:350)
            at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.addError(EJBQLParser.java:278)
            at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.reportError(EJBQLParser.java:378)
            at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.aggregateExpression(EJBQLParser.java:1416)
            at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.selectExpression(EJBQLParser.java:1158)
            at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.selectClause(EJBQLParser.java:403)
            at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.selectStatement(EJBQLParser.java:178)
            at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.document(EJBQLParser.java:135)
            at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.parse(EJBQLParser.java:166)
            at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.buildParseTree(EJBQLParser.java:127)
            at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:215)
            at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:189)
            at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:153)
            at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.<init>(EJBQueryImpl.java:114)
            at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.<init>(EJBQueryImpl.java:99)
            at oracle.toplink.essentials.internal.ejb.cmp3.EJBQueryImpl.<init>(EJBQueryImpl.java:86)
            at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:204)
            ... 30 more
    Caused by: line 1:12: unexpected token: (
            at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.aggregateExpression(EJBQLParser.java:1365)
            ... 43 morePlease let me know what am I doing wrong?
    Thanks.

    Hello,
    From the grammar in the JPA spec, SUM only takes a state_field_path_expression which is defined as
    state_field_path_expression := {identification_variable | single_valued_association_path_expression}.state_field
    Please feel free to file an enhancement to have this expanded upon.
    Best Regards,
    Chris

Maybe you are looking for

  • Xml cross domain

    I am putting xml weather on my Flash site using Yahoo! weather. I am using code similar to: var my_xml:XML = new XML(); my_xml.ignoreWhite = true; my_xml.onLoad = function(success:Boolean) { // do something my_xml.load(" http://xml.weather.yahoo.com/

  • AdHooc Query

    I have to write a single adhoc query whose output will be two different reports. One report should display pernr,perid, firstname, lastname, age, years of service, hire date,birthdate, job title. The other should display pernr, firstname, lastname,hi

  • BUG: Unable to increase stack size in OJVM

    Hi, I have a complex ADF Faces page (jspx) that has reached the level of complexity that I can reliably cause the JVM to die when running the page with: Fatal error: Cannot find class java/lang/StackOverflowError Process exited with exit code -1.when

  • HT204266 Problems with updating Apps

    Since early July any updates to my Apps are not downloading (I am getting a perpetual Waiting message) and are freezing the particular App which then cannot be used.  I have uninstalled and tried to reinstall the Apps but the same problem occurs.  I

  • Trouble selecting and moving objects near text in Adobe Illustrator? Try this.

    It's been 4 years since I left Corel DRAW for Adobe Illustrator. One thing I could never get used to is the crazy way text has an impenetrable invisible sheet over it making it hard to select objects near or behind it. With Corel DRAW I was used to b