Hi,

I'm trying to call the Java code (way) below.  I can't seem to form the call
correctly from perl (inline::Java).

To call it from native Java its like:

    EClientErrors.CONNECT_FAIL.msg();

After I've imported the proper Java in my perl code (I know I've imported
things correctly, because I can instantiate and interact with other Java
classes).

I've tried:

my $error = com::ib::client::EClientErrors->new;
print $error->CONNECT_FAIL,"\n";
print $error->{CONNECT_FAIL},"\n";
print $error->CONNECT_FAIL->msg,"\n";
print $error->{CONNECT_FAIL}->msg,"\n";

print com::ib::client::EClientErrors->CONNECT_FAIL,"\n";
print com::ib::client::EClientErrors->{CONNECT_FAIL},"\n";
print com::ib::client::EClientErrors->CONNECT_FAIL->msg,"\n";
print com::ib::client::EClientErrors->{CONNECT_FAIL}->msg,"\n";

but I alway get a Java error along the lines of:

No public method 'CONNECT_FAIL' defined for class
'main::com::ib::client::EClientErrors' at ./in4

How do I form the call properly?
Thanks
Jay

Below is the source Java:


/*
 * EClientErrors.java
 *
 * Created on February 28, 2002, 1:07 PM
 */
package com.ib.client;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: Interactive Brokers Group LLC</p>
 * @author :
 * @version :
 */
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//
// Class EClientErrors
//
///////////////////////////////////////////////////////////////////////////
public class EClientErrors {

    ///////////////////////////////////////////////////////////////////////
    // Public members
    ///////////////////////////////////////////////////////////////////////
    static final int NO_VALID_ID = -1;

    static final CodeMsgPair ALREADY_CONNECTED = new CodeMsgPair(
            501,
            "Already connected.");
    static final CodeMsgPair CONNECT_FAIL = new CodeMsgPair(
            502,
            "Couldn't connect to TWS.  Confirm that \"Enable ActiveX and
Socket Clients\" is enabled on the \"Settings\" menu.");
    static final CodeMsgPair UPDATE_TWS = new CodeMsgPair(
            503,
            "The TWS is out of date and must be upgraded.");
    static final CodeMsgPair NOT_CONNECTED = new CodeMsgPair(
            504,
            "Not connected");
    static final CodeMsgPair  UNKNOWN_ID = new CodeMsgPair(
            505,
            "Fatal Error: Unknown message id.");
    static final CodeMsgPair FAIL_SEND_REQMKT = new CodeMsgPair(
            510,
            "Request Market Data Sending Error - ");
    static final CodeMsgPair FAIL_SEND_CANMKT = new CodeMsgPair(
            511,
            "Cancel Market Data Sending Error - ");
    static final CodeMsgPair FAIL_SEND_ORDER = new CodeMsgPair(
            512,
            "Order Sending Error - ");
    static final CodeMsgPair FAIL_SEND_ACCT = new CodeMsgPair(
            513,
            "Account Update Request Sending Error -");
    static final CodeMsgPair FAIL_SEND_EXEC = new CodeMsgPair(
            514,
            "Request For Executions Sending Error -");
    static final CodeMsgPair FAIL_SEND_CORDER = new CodeMsgPair(
            515,
            "Cancel Order Sending Error -");
    static final CodeMsgPair FAIL_SEND_OORDER = new CodeMsgPair(
            516,
            "Request Open Order Sending Error -");
    static final CodeMsgPair  UNKNOWN_CONTRACT = new CodeMsgPair(
            517,
            "Unknown contract. Verify the contract details supplied.");
    static final CodeMsgPair FAIL_SEND_REQCONTRACT = new CodeMsgPair(
            518,
            "Request Contract Data Sending Error - ");
    static final CodeMsgPair FAIL_SEND_REQMKTDEPTH = new CodeMsgPair(
            519,
            "Request Market Depth Sending Error - ");
    static final CodeMsgPair FAIL_SEND_CANMKTDEPTH = new CodeMsgPair(
            511,
            "Cancel Market Depth Sending Error - ");
    static final CodeMsgPair FAIL_SEND_SERVER_LOG_LEVEL = new CodeMsgPair(
            511,
            "Set Server Log Level Sending Error - ");

    ///////////////////////////////////////////////////////////////////////
    // Constructors
    ///////////////////////////////////////////////////////////////////////
    /**
     *
     */
    public EClientErrors() {
    }


    ///////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////
    //
    // Class CodeMsgPair
    //
    ///////////////////////////////////////////////////////////////////////
    static public class CodeMsgPair {

        ///////////////////////////////////////////////////////////////////
        // Public members
        ///////////////////////////////////////////////////////////////////
        int     m_errorCode;
        String  m_errorMsg;

        ///////////////////////////////////////////////////////////////////
        // Get/Set methods
        ///////////////////////////////////////////////////////////////////
        public int code()    { return m_errorCode; }
        public String msg()  { return m_errorMsg; }

        ///////////////////////////////////////////////////////////////////
        // Constructors
        ///////////////////////////////////////////////////////////////////
        /**
         *
         */
        public CodeMsgPair(int i, String errString) {
            m_errorCode = i;
            m_errorMsg = errString;
        }
    }
}



Reply via email to