Oracle OSB - Tutorial for development using Eclipse Plugin

Hi,
1. I need a tutorial to develop a simple application using file adapter. For example it was very easier in Oracle ESB 10.3 version where I can drag and drop adapters and configure. What should I do if I have to create similar adapters in OSB. Can you provide documentation. For Oracle ESB(old version) there was ESB Quick Start guide and it was very useful. Do we have some thing similar for OSB?
2. Most of the tutorials that are in Oracle website points to using JDeveloper. When I download the JDeveloper I no longer get those option. When I browsed I found that we should use Eclipse Plugin for OSB development. Is it true.
Thanks for your help.
Thanks,
Uma

Hi Uma,
You may find OSB samples and tutorials at below links -
http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/examples/samples.html
http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/tutorial/tutGettingStarted.html
http://www.oracle.com/technology/sample_code/products/osb/samples/osb_examples_tutorials_0.pdf
http://www.oracle.com/technology/products/soa/service-bus/collateral/osbsamples.html
http://www.oracle.com/technetwork/articles/jumpstart-for-osb-development-page--084104.html
Oracle service bus installer comes with a eclipse plugin which can be used to develope OSB applications using Eclipse. Refer installation guide to know more.
You should post OSB related questions in Oracle SOA Suite forum to get better and faster response -
SOA Suite
Regards,
Anuj

Similar Messages

  • Simulation using Eclipse plugin for JCOP tools

    Dear All,
    In search for a simulation environment for java card applet development I tried to use Eclipse plugin for JCOP tools.
    The samples which comes with the JCOP tools works fine but when try to debug my applet I receive the error: Wrong Data 6A 80.
    Generic JCOP v2.4.1 is selected for Java Card Simulation.
    Following is the JCOP Shell screen:
    cm- /term "Remote|localhost:8050"
    --Opening terminal
    /card -a a000000003000000 -c com.ibm.jc.CardManagerresetCard with timeout: 0 (ms)
    --Waiting for card...
    ATR=3B F8 13 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 ;.....1.EJCOPv24
    31 B7 1.
    IOCTL().
    ATR: T=1, FI=1/DI=3 (93clk/etu), N=0, IFSC=254, BWI=4/CWI=5, Hist="JCOPv241"
    => 00 A4 04 00 08 A0 00 00 00 03 00 00 00 00 ..............
    (908058 nsec)
    <= 6F 65 84 08 A0 00 00 00 03 00 00 00 A5 59 9F 65 oe...........Y.e
    01 FF 9F 6E 06 47 91 92 18 00 00 73 4A 06 07 2A ...n.G.....sJ..*
    86 48 86 FC 6B 01 60 0C 06 0A 2A 86 48 86 FC 6B .H..k.`...*.H..k
    02 02 01 01 63 09 06 07 2A 86 48 86 FC 6B 03 64 ....c...*.H..k.d
    0B 06 09 2A 86 48 86 FC 6B 04 02 15 65 0B 06 09 ...*.H..k...e...
    2B 85 10 86 48 64 02 01 03 66 0C 06 0A 2B 06 01 +...Hd...f...+..
    04 01 2A 02 6E 01 02 90 00 ..*.n....
    Status: No Error
    cm> set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f
    cm> init-update 255
    => 80 50 00 00 08 B1 04 15 2B 41 3F 62 AB 00 .P......+A?b..
    (2668 usec)
    <= 00 00 F9 02 71 E3 BB AD BD CD FF 02 00 00 3D 02 ....q.........=.
    9C 31 C7 89 AD 44 8E 13 17 15 2E 5A 90 00 .1...D.....Z..
    Status: No Error
    cm> ext-auth plain
    => 84 82 00 00 10 CE 6C DC D2 8C BE 5E 33 EC 58 D0 ......l....^3.X.
    57 3A 52 D2 24 W:R.$
    (2288 usec)
    <= 90 00 ..
    Status: No Error
    cm> delete -r a00000006203010c04
    => 80 E4 00 80 0B 4F 09 A0 00 00 00 62 03 01 0C 04 .....O.....b....
    00 .
    (1084 usec)
    <= 6A 88 j.
    Status: Reference data not found
    jcshell: Error code: 6a88 (Reference data not found)
    jcshell: Wrong response APDU: 6A88
    Ignoring expected error
    cm> upload -d -b 250 "D:\JCOP\eclipse\projects\DigitalTachograph\bin\digitaltachograph\javacard\digitaltachograph.cap"
    => 80 E6 02 00 16 09 A0 00 00 00 62 03 01 0C 04 08 ..........b.....
    A0 00 00 00 03 00 00 00 00 00 00 00 ............
    (2100 usec)
    <= 00 90 00 ...
    Status: No Error
    => 80 E8 00 00 FA C4 82 84 42 01 00 25 DE CA FF ED ........B..%....
    02 02 04 00 01 09 A0 00 00 00 62 03 01 0C 04 11 ..........b.....
    64 69 67 69 74 61 6C 74 61 63 68 6F 67 72 61 70 digitaltachograp
    68 02 00 21 00 25 00 21 00 0E 00 29 03 3E 00 CD h..!.%.!...).>..
    23 D2 01 BB 04 44 00 00 09 E3 4B E5 00 11 00 05 #....D....K.....
    01 A2 04 01 00 04 00 29 04 00 01 07 A0 00 00 00 .......)........
    62 00 01 02 01 07 A0 00 00 00 62 01 01 02 01 07 b.........b.....
    A0 00 00 00 62 01 02 02 01 07 A0 00 00 00 62 02 ....b.........b.
    01 03 00 0E 01 0A A0 00 00 00 62 03 01 0C 04 01 ..........b.....
    01 DF 06 00 CD 00 00 00 80 00 00 FF 00 01 00 00 ................
    00 01 81 03 13 00 12 07 03 00 00 02 01 03 06 0B ................
    8C 81 00 00 00 80 00 0B 00 0B 01 01 00 00 0B F9 ................
    00 80 00 11 00 0F 01 01 00 10 0E A9 0D D4 0D F7 ................
    0E 07 0E 18 0E 26 0E 35 0E 44 0E 50 0E 72 0E 81 .....&.5.D.P.r..
    0E 90 0E 9B 0E F5 11 05 11 1A 11 50 00 80 00 05 ...........P....
    00 04 01 04 00 01 13 AF 13 B5 13 BA 14 0C 13 00 ................
    (6775 usec)
    <= 6A 80 j.
    Status: Wrong data
    jcshell: Error code: 6a80 (Wrong data)
    jcshell: Wrong response APDU: 6A80
    Unexpected error; aborting execution
    I will be very happy if you can help me. I am desperately in need of a working debugging environment.
    Thanks in advance!
    Kind regards,
    Mehmet

         * Processes incoming READ_BINARY APDUs. Returns data of the currently
         * selected file.
         * @param apdu   where the offset is carried in header bytes p1 and p2.
         * @param le  expected length by terminal
         * @return length of the response APDU
        private short processReadBinary(APDU apdu, boolean protectedApdu,  short leUnprotected) {
            if (!hasFileSelected()) {
                ISOException.throwIt(SW_CONDITIONS_NOT_SATISFIED);
            byte[] buffer = apdu.getBuffer();
            // retrieve p1p2 from apdu buffer
            byte p1 = buffer[OFFSET_P1];
            byte p2 = buffer[OFFSET_P2];
            short offset = Util.makeShort(p1, p2);     // offset encoded in P1/P2, 15 lowest bit
            // offset encoded in P1/P2, 15 lowest bit
            // check if le != 0 <-- no response expected
            if (leUnprotected == 0) {
                ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
            if (selectedFile == null) {
                ISOException.throwIt(ISO7816.SW_FILE_NOT_FOUND);
            if ((selectedFile.getAccessConditions() & READ_REQUIRES_SM) == READ_REQUIRES_SM) {
                if(!protectedApdu)
                   ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
            short fileSize = (short) selectedFile.getFileLength();
            // check offset
            if (offset >= fileSize) {
                ISOException.throwIt(ISO7816.SW_INCORRECT_P1P2);
            // check expected length
            if ((short) (offset + leUnprotected) > fileSize) {
                ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
                //ISOException.throwIt(SW_TAMAM);
            short bufferOffset = 0;
            crypto.setEncryptionStatus(isSelectedFileEncrypted());
            if (protectedApdu) {
                bufferOffset = crypto.getApduBufferOffsetDT(leUnprotected);
                if(isSelectedFileEncrypted())
                   bufferOffset = crypto.getApduBufferOffset(leUnprotected);
                apdu.setOutgoing();
            Util.arrayCopyNonAtomic(selectedFile.getData(), offset, buffer, bufferOffset, leUnprotected);
            return leUnprotected;
         * Processes and UPDATE_BINARY apdu. Writes data in the currently selected
         * file.
         * @param apdu
         *            carries the offset where to write date in header bytes p1 and
         *            p2.
        private void processUpdateBinary(APDU apdu, boolean protectedApdu) {
            if (!hasFileSelected() || isLocked()) {
                ISOException.throwIt(ISO7816.SW_COMMAND_NOT_ALLOWED);
            if ((selectedFile.getAccessConditions() & DigitalTachograph.UPDATE_ALW) != DigitalTachograph.UPDATE_ALW) {
                if ((selectedFile.getAccessConditions() & DigitalTachograph.UPDATE_REQUIRES_SM) != DigitalTachograph.UPDATE_REQUIRES_SM) {
                    ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
                    return;
                }else if(!protectedApdu){
                        ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
            byte[] buffer = apdu.getBuffer();
            byte p1 = buffer[OFFSET_P1];
            byte p2 = buffer[OFFSET_P2];
            short offset = Util.makeShort(p1, p2);
            short readCount = (short) (buffer[ISO7816.OFFSET_LC] & 0xff);
            //if (!protectedApdu){
                readCount = apdu.setIncomingAndReceive();
            while (readCount > 0) {
                selectedFile.writeData(offset, buffer, OFFSET_CDATA, readCount);
                offset += readCount;
                readCount = apdu.receiveBytes(ISO7816.OFFSET_CDATA);
        private short processInternalAuthenticate(APDU apdu , boolean protectedApdu) throws CryptoException {
            byte[] buffer = apdu.getBuffer();
            short lc = (short) (buffer[OFFSET_LC] & 0xFF);
            if (lc != (short) (KID_LENGTH * 2)) {
                ISOException.throwIt(SW_WRONG_LENGTH);
            if (apdu.setIncomingAndReceive() != lc) {
                ISOException.throwIt(ISO7816.SW_WRONG_DATA);
            // Check if VU.CHR maches the one of the selected certificate on the card
            if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + KID_LENGTH), keyStore.selected_KID, (short) 0, KID_LENGTH) != 0) {
                ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
            if (Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, Rnd1, (short) 0, (short) 8) != (short) 8) { // Receive Rnd1
                ISOException.throwIt(ISO7816.SW_WRONG_DATA);
            // Hash(PRnd2||K1||Rnd1||VU.CHR)
            random.generateData(PRnd2, (short) 0, (short) 90);
            random.generateData(K1, (short) 0, (short) 16);
            crypto.shaDigest.update(PRnd2, (short) 0, (short) 90); // PRnd2
            crypto.shaDigest.update(K1, (short) 0, (short) 16); // PRnd2||K1
            crypto.shaDigest.doFinal(buffer, OFFSET_CDATA, lc, digest, (short) 0); //Rnd1||VU.CHR
            BigNumber mod = new BigNumber((short) 128);
            mod.init(keyStore.Card_PubMod, (short) 0, (short) keyStore.Card_PubMod.length, BigNumber.FORMAT_HEX);
            mod.subtract(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX);
            if (mod.compareTo(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX) == -1) {
                mod.toBytes(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX);
            // To be added: if the selected private key is considered corrupted, the processing state returned is '6400' or '6581'.
            signed[0] = (byte) 0x6A;
            Util.arrayCopyNonAtomic(PRnd2, (short) 0, signed, (short) 1, (short) 90);
            Util.arrayCopyNonAtomic(K1, (short) 0, signed, (short) 91, (short) 16);
            Util.arrayCopyNonAtomic(digest, (short) 0, signed, (short) 107, (short) 20);
            signed[127] = (byte) 0xBC;
            if (!keyStore.cardPrivateKey.isInitialized()) {
                CryptoException.throwIt(CryptoException.ILLEGAL_VALUE);
            try {
                crypto.rsaSigner.init(keyStore.cardPrivateKey, Signature.MODE_SIGN);
                crypto.rsaSigner.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
            } catch (Exception e) {
                ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
            if (!keyStore.selectedPublicKey.isInitialized()) {
                CryptoException.throwIt(CryptoException.ILLEGAL_VALUE);
            try {
                crypto.rsaCipher.init(keyStore.selectedPublicKey, Cipher.MODE_ENCRYPT);
                crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
            } catch (Exception e) {
                ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
            apdu.setOutgoing();
            Util.arrayCopyNonAtomic(signed, (short) 0, buffer, (short) 0, (short) 128);
            return (short) signed.length;
        private void processExternalAuthenticate(APDU apdu) {
            short equipmentType = 0;
            if (keyStore.Selected_Cert != null) {
                equipmentType = (short) keyStore.Selected_Cert.CHA[6]; // check equipment type
            if (equipmentType != (short) 1 && equipmentType != (short) 2 && equipmentType != (short) 3 && equipmentType != (short) 4 && equipmentType != (short) 6) {
                ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); // Instead of 6F00 throw a more meaningfull SW in case CHA is not valid.
            if (Util.arrayCompare(keyStore.Selected_Cert.CHA, (short) 0, TACHOGRAPH_AID, (short) 0, (short) 6) != 0) {
                ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED);
            byte[] buffer = apdu.getBuffer();
            byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
            byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
            if (p1 != 0 || p2 != 0) {
                ISOException.throwIt(SW_WRONG_P1P2);
            short lc = (short) (buffer[OFFSET_LC] & 0xFF);
            if (lc != (short) (128)) {
                ISOException.throwIt(SW_WRONG_LENGTH);
            if (apdu.setIncomingAndReceive() != lc) {
                ISOException.throwIt(ISO7816.SW_WRONG_DATA);
            Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, signed, (short) 0, (short) 128); // receive the cryptogram from the VU
            // decrypt the encrypted message with the card private key
            try {
                crypto.rsaCipher.init(keyStore.cardPrivateKey, Cipher.MODE_DECRYPT);
                crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
            } catch (Exception e) {
                ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
            // verify the signature with the VU public key
            try {
                crypto.rsaCipher.init(keyStore.selectedPublicKey, Signature.MODE_VERIFY); // Cipher.MODE_ENCRYPT
                crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
            } catch (Exception e) {
                ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
            if (signed[0] != (byte) 0x6A || signed[127] != (byte) 0xBC) {
                ISOException.throwIt(Util.makeShort(signed[0], signed[127]));
            try {
                verifyCardCertificates();
                Util.arrayCopyNonAtomic(signed, (short) 1, preDigest, (short) 0, (short) 106); // accumulate preDigest
                Util.arrayCopyNonAtomic(Rnd3, (short) 0, preDigest, (short) 106, (short) 8); // accumulate preDigest
                Util.arrayCopyNonAtomic(keyStore.Card_Cert.CHR, (short) 0, preDigest, (short) 114, (short) 8); // accumulate preDigest
                Util.arrayCopyNonAtomic(signed, (short) 91, K2, (short) 0, (short) 16); // receive K2 value
                crypto.shaDigest.update(signed, (short) 1, (short) 106); // PRnd4||K2
                crypto.shaDigest.update(Rnd3, (short) 0, (short) 8); // Rnd3
                crypto.shaDigest.doFinal(keyStore.Card_Cert.CHR, (short) 0, (short) 8, digest, (short) 0); //||Card.CHR
            } catch (Exception e) {
                ISOException.throwIt(SW_TAMAM);
            if (Util.arrayCompare(signed, (short) 107, digest, (short) 0, (short) 20) != 0) {
                ISOException.throwIt(SW_TAMAM);
            volatileState[0] |= MUTUAL_AUTHENTICATED;
            try {
                DTUtil.xor(K1, (short) 0, K2, (short) 0, KaKb, (short) 0, (short) 16);
                Util.arrayCopyNonAtomic(Rnd3, (short) 4, SSC, (short) 0, (short) 4); // tail of Rnd3
                Util.arrayCopyNonAtomic(Rnd1, (short) 4, SSC, (short) 4, (short) 4); // tail of Rnd1
            } catch (Exception e) {
                ISOException.throwIt(SW_TAMAM);
            try {
                keyStore.setKey_Ka(KaKb, (short) 0);
                keyStore.setKey_Kb(KaKb, (short) 8);
                keyStore.setSecureMessagingKeys(KaKb, (short) 0, KaKb, (short) 0);
            } catch (Exception e) {
                ISOException.throwIt(SW_TAMAM_DEGIL);
            return;
        private short returnPreDigest(APDU apdu) {
            byte[] buffer = apdu.getBuffer();
            apdu.setOutgoing();
            Util.arrayCopyNonAtomic(preDigest, (short) 0, buffer, (short) 0, (short) 122);
            return (short)preDigest.length;
        private short returnDigest(APDU apdu) {
            byte[] buffer = apdu.getBuffer();
            apdu.setOutgoing();
            Util.arrayCopyNonAtomic(digest, (short) 0, buffer, (short) 0, (short) 20);
            return (short)digest.length;
        private short returnOriginalText(APDU apdu) {
            byte[] buffer = apdu.getBuffer();
            apdu.setOutgoing();
            Util.arrayCopyNonAtomic(signed, (short) 0, buffer, (short) 0, (short) 128);
            return (short)signed.length;
        private void processVerify(APDU apdu) { // Verify_CHV(Pin_Ws)
            byte[] buffer = apdu.getBuffer();
            // retrieve the PIN data for validation.
            byte byteRead = (byte) (apdu.setIncomingAndReceive());
            // the PIN data is read into the APDU buffer
            // at the offset ISO7816.OFFSET_CDATA the PIN data length = byteRead
            if (pin.check(buffer, ISO7816.OFFSET_CDATA, byteRead) == false) {
                ISOException.throwIt(SW_VERIFICATION_FAILED);
            return;
        private void processPSO(APDU apdu) { // verify certificate
            byte[] buffer = apdu.getBuffer();
            byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
            byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
            short lc = (short) (buffer[ISO7816.OFFSET_LC] & 0xFF);
            if (p1 == (byte) 0x00 && p2 == P2_VERIFYCERT) {
                if (lc != TACHO_CERT_LENGTH) {
                    ISOException.throwIt(SW_WRONG_LENGTH);
                if (apdu.setIncomingAndReceive() != lc) {
                    ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
                try { // copy the certificate to be verified from APDU buffer to cert object
                    Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, cert, (short) 0, lc);
                } catch (Exception e) {
                    ISOException.throwIt(SW_TAMAM);
                if (Util.arrayCompare(keyStore.selected_KID, (short) 0, keyStore.ERCA_KID, (short) 0, KID_LENGTH) == 0) {
                    keyStore.VUCA_Cert.verifyCert(cert, keyStore.selectedPublicKey, keyStore.selected_KID);
                } else if (Util.arrayCompare(keyStore.selected_KID, (short) 0, keyStore.VUCA_Cert.CHR, (short) 0, KID_LENGTH) == 0) {
                    keyStore.VU_Cert.verifyCert(cert, keyStore.selectedPublicKey, keyStore.selected_KID);
                } else {
                    ISOException.throwIt(SW_CERT_VERIFICATION_FAILED); // Selected keyId, with MSE, is neither ERCA_KID nor VUCA_KID
            } else {
                ISOException.throwIt(SW_CERT_VERIFICATION_FAILED);
            return;
        private short processGetChallenge(APDU apdu, boolean protectedApdu) {
            byte[] buffer = apdu.getBuffer();
            byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
            byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
            if (p1 != 0 || p2 != 0) {
                ISOException.throwIt(SW_WRONG_P1P2);
            random.generateData(Rnd3, (short) 0, (short) 8);
            short Le = apdu.setOutgoing();
            if (Le != (short) 8) {
                ISOException.throwIt(SW_WRONG_LENGTH);
            Util.arrayCopyNonAtomic(Rnd3, (short) 0, buffer, (short) 0, (short) 8);
            return Le;
        private void processMSE(APDU apdu) {
            byte[] buffer = apdu.getBuffer();
            if (buffer[OFFSET_P1] == (byte) 0xC1 && buffer[OFFSET_P2] == P2_DST) {
                short lc = (short) (buffer[OFFSET_LC] & 0xFF);
                if (lc != (short) (KID_LENGTH + 2)) {
                    ISOException.throwIt(SW_WRONG_LENGTH);
                if (apdu.setIncomingAndReceive() != lc) {
                    ISOException.throwIt(ISO7816.SW_WRONG_DATA);
                if (buffer[OFFSET_CDATA] != (byte) 0x83) {//check the tag of the data
                    ISOException.throwIt(SW_SECURE_MESSAGING_DATA_OBJECTS_MISSING);
                } else if (buffer[OFFSET_CDATA + 1] != (byte) 0x08) {
                    ISOException.throwIt(SW_INCORRECT_DATA_OBJECT); // check if the key is already selected one
                } else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.selected_KID, (short) 0, KID_LENGTH) != 0) {
                    if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.ERCA_KID, (short) 0, KID_LENGTH) == 0) {// KID is EUR_KID
                        keyStore.selected_KID = keyStore.ERCA_KID;
                        keyStore.selectedPublicKey = keyStore.eurPublicKey;
                        keyStore.Selected_Cert = null; // ERCA public key is selected
                        return;
                    } else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.VUCA_Cert.CHR, (short) 0, KID_LENGTH) == 0) {// KID is MSCA_KID
                        keyStore.Selected_Cert = keyStore.VUCA_Cert;
                    } else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.VU_Cert.CHR, (short) 0, KID_LENGTH) == 0) { // KID is VU_KID
                        keyStore.Selected_Cert = keyStore.VU_Cert;
                    } else {
                        ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
                    }// KID not found
                    keyStore.selectedPublicKey = keyStore.Selected_Cert.publicKey;
                    keyStore.selected_KID = keyStore.Selected_Cert.CHR;
                } else { // if the KID is already set, just return
                    return;
            } else {
                ISOException.throwIt(ISO7816.SW_WRONG_P1P2);
        private void processSelectFile(APDU apdu) {
            byte[] buffer = apdu.getBuffer();
            short lc = (short) (buffer[OFFSET_LC] & 0x00FF);
            // retrieve p1p2 from apdu buffer
            byte p1 = buffer[OFFSET_P1];
            byte p2 = buffer[OFFSET_P2];
            short p1p2 = Util.makeShort(p1, p2);
            apdu.setIncomingAndReceive();
            if (p1 == 4) {
                if (lc == (short) TACHO_AID_LENGTH) {
                    if (Util.arrayCompare(buffer, (short) OFFSET_CDATA, TACHOGRAPH_AID, (short) 0, (short) TACHO_AID_LENGTH) == 0) {
                        selectedFile = fileSystem.getDT();
                        fileSystem.selectDT();
                        volatileState[0] |= FILE_SELECTED;
                        return;
                    } else {
                        ISOException.throwIt(ISO7816.SW_WRONG_DATA);
                } else if (lc != 2) {
                    ISOException.throwIt(SW_WRONG_LENGTH);
                short fid = Util.getShort(buffer, OFFSET_CDATA);
                if (fileSystem.getFile(fid) != null) {
                    selectedFile = fileSystem.getDT();
                    fileSystem.selectDT();
                    volatileState[0] |= FILE_SELECTED;
                    return;
            } else if (p1 == 2) {
                if (lc != 2) {
                    ISOException.throwIt(SW_WRONG_LENGTH);
                short fid = Util.getShort(buffer, OFFSET_CDATA);
                if (fileSystem.getFile(fid) != null) {
                    selectedFile = fileSystem.getFile(fid);
                    volatileState[0] |= FILE_SELECTED;
                    return;
            } else {
                ISOException.throwIt(ISO7816.SW_WRONG_P1P2);
            setNoFileSelected();
            ISOException.throwIt(ISO7816.SW_FILE_NOT_FOUND);
        public static void setNoFileSelected() {
            if (hasFileSelected()) {
                volatileState[0] ^= FILE_SELECTED;
        public static boolean hasFileSelected() {
            return (volatileState[0] & FILE_SELECTED) == FILE_SELECTED;
        public static boolean hasMutuallyAuthenticated() {
            return (volatileState[0] & MUTUAL_AUTHENTICATED) == MUTUAL_AUTHENTICATED;
        static boolean isLocked() {
            return (persistentState & LOCKED) == LOCKED;
        public boolean isSelectedFileEncrypted() {
            return ((selectedFile.getAccessConditions() & DigitalTachograph.ENCRYPTED) == DigitalTachograph.ENCRYPTED);
    }

  • Need help : Installing the standalone OEPE for OSB 11g for development

    Hi All,
    It would be greatly appreciated if any one could share the details of installing the standalone OEPE (Eclipse along with the OSB plugin for 11g) for development purpose.
    If possible kindly share the download link for the same.
    Thanks in advance.
    Regards,
    Balaji R

    Hi,
    To have OEPE with the plugins for OSB you actually have to install Weblogic with OEPE and OSB. OEPE will need the libraries in Weblogic and OSB installation...
    The latest version for Weblogic+OEPE (Indigo) for Windows
    http://download.oracle.com/otn/nt/middleware/11g/wls/1211/oepe-indigo-installer-12.1.1.0.1.201203120349-12.1.1-win32.exe
    The latest version for OSB for Windows
    http://download.oracle.com/otn/nt/middleware/11g/111160/ofm_osb_generic_11.1.1.6.0_disk1_1of1.zip
    Weblogic download page...
    http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-main-097127.html
    OSB download page...
    http://www.oracle.com/technetwork/middleware/service-bus/downloads/index.html
    Cheers,
    Vlad
    It is considered good etiquette to reward answerers with points (as "helpful" - 5 pts - or "correct" - 10pts)
    https://forums.oracle.com/forums/ann.jspa?annID=893

  • Really impossible to create a web service for JBoss using eclipse's WTP?

    I'm starting to get nuts!!!
    I'm an experienced J2SE and J2ME Java developer... but I have huge problems creating a web service using eclipse WTP!
    The tutorials I found are for tomcat... But I want to code for JBoss and not for tomcat...!!!
    There must be somebody out there with the same issues...
    This tutorial works fine for Tomcat...
    http://www.eclipse.org/webtools/community/tutorials/BottomUpWebService/BottomUpWebService.html
    But if I do the same with JBoss... it's not possible to incoke my web service method... ok, I thought... just need to check google... BUT I didn't find any solution in the whole WWW. Found a lot of questions of people with the same problems... but no solution! :(
    Still getting that:
    ERROR [EngineConfigurationFactoryServlet] Unable to find config file. Creating new servlet engine config file: /WEB-INF/server-config.wsdd
    I know a little bit what a wsdd does... but isn't it the job of the WTP to create that file???
    I really hope you have some places for me to start, 'cause I don't know anymore places to ask for...
    Maybe this is a JBoss issue... I don't know...
    Or is there a tutorial on how to create a web Service using JBoss IDE?
    Sascha

    Hi Massimo,
    Quiet a few points here.
    1. Oracle Type objects do not map to XML Complex type
    2. Oracle Type objects do not map to Apex Page Item Types
    3. Apex Page Item types are substituted into the WS Request XML by a process which is part of the Web Service Reference creation through the Wizard in Apex.
    >
    After created the web service (without any errors), I click on test.
    - I can select the Operation --> CREATE_LINGUA
    - I can input data for Basic Authentication
    - I can't view Input Parameters --> Report returned no rows.
    I've tried with normal type like Varchar2 and all was ok.
    Is possible in Apex to use web services based on complex type, tipically an Array?
    >
    As you have guessed the Wizard driven Web Service Reference definition process cannot handle complex types of input parameters required by a Request. By definition the number of complex types possible are infinite, so they are not likely to come built in.
    Passing an array is no solution because finally the values passed have to be plugged into the right SimpleTypes inside a ComplexType in the Request.
    Based on your WSDL your Request will be
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cre="http://xmlns.oracle.com/orawsv/GRIMALDI/PKG_WEBSERVICES/CREATE_LINGUA">
       <soapenv:Header/>
       <soapenv:Body>
          <cre:SNUMBER-CREATE_LINGUAInput>
             <cre:PLINGUA-LINGUAT-CIN>
                <cre:LINGUAT>
                   <cre:CODICE>?</cre:CODICE>
                   <cre:DESCRIZIONE>?</cre:DESCRIZIONE>
                </cre:LINGUAT>
             </cre:PLINGUA-LINGUAT-CIN>
          </cre:SNUMBER-CREATE_LINGUAInput>
       </soapenv:Body>
    </soapenv:Envelope>However, all is not lost. You can always use the UTL_HTTP package API to construct your Request.
    Regards,

  • Dead Link in "Oracle ADF: Tutorial for Forms/4GL Developers"

    In "Oracle Application Development Framework: Tutorial for Forms/4GL Developers (10.1.3.1.0)"
    URL: http://www.oracle.com/technology/obe/ADFBC_tutorial_1013/10131/index.htm
    link "Download the zipped support files" returns "We're sorry, the page you requested was not found."
    URL: http://download.oracle.com/otndocs/products/jdev/10131/ADFBCTutorialSetup10131.zip

    In "Oracle Application Development Framework: Tutorial for Forms/4GL Developers (10.1.3.1.0)"
    URL: http://www.oracle.com/technology/obe/ADFBC_tutorial_1013/10131/index.htm
    link "Download the zipped support files" returns "We're sorry, the page you requested was not found."
    URL: http://download.oracle.com/otndocs/products/jdev/10131/ADFBCTutorialSetup10131.zip

  • [ORACLE 9] OPEN FOR statement USING bind variable

    Hi,
    I have a loop that only fetches 1 record instead of 7:
    DECLARE
    lv_into varchar2(40);
    lv_qry  varchar2(400);
    type curtest_ref is ref cursor;
    curtest          curtest_ref;
    lv_compteur number(4) := 1;
    lv_client_loc   varchar2(100);
    BEGIN
    dbms_output.put_line( 'Début' );
    lv_qry := 'select client_loc from tmp_jbm where client_id = :A ';
    open curtest for lv_qry using lv_compteur;                
    loop
                    fetch curtest into lv_client_loc ;
                    exit when curtest%notfound;
                    dbms_output.put_line( 'ligne: '       || to_char( lv_compteur )
                                       || ' Client Loc: ' || lv_client_loc );
                    lv_compteur := lv_compteur + 1;
                    exit when lv_compteur > 6;
         end loop;
    EXCEPTION
        when others then
                 dbms_output.put_line( 'Erreur exception: ' || sqlerrm );
    END;
    [/END CODE]
    It looks like the cursor only fetches 1 record and then stops.
    Many thanks                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    The code is doing what you have asked it to do.
    Incrementing lv_compteur := lv_compteur + 1; inside the FOR LOOP will not refresh your CURSOR as the CURSOR OPEN statement is outside the loop.
    You could change your lv_qry variable to something like this:
    lv_compteur_min number(4) := 1;
    lv_compteur_max number(4) := 6;
    lv_qry := 'select client_loc from tmp_jbm where client_id BETWEEN :A AND :B';and OPEN the cursor by passing two variables
    open curtest for lv_qry using lv_compteur_min, lv_compteur_max ;

  • Oracle ADF (Tutorial for Forms/4GL Developers (10.1.3.1.0))

    Hi Gurus,
    I am building the sample Service Request Application. The am using the above mentioned Tutorial Guide. I completed Chapter 5 and Trying to run the First Web page I built.
    I am getting the following error.
    Error instantiating application at file:/W:/Software/JDeveloper/jdevstudio10133/jdev/system/oracle.j2ee.10.1.3.41.57/embedded-oc4j/applications/datatags.ear: Unable to get ApplicationConfig for datatags : Error creating deployment directory: IO Error: The system cannot find the path specified.
    MY Jdeveloper installation in in C:\. But y is it looking for a file in W:\??? Confusing.
    My JDeveloper version in 10.1.3.3.0.4157.
    Thanks and Regards,

    Frank,
    I did what you said.
    While running the application, I got the following error message and a page with (Network Error (tcp_error) Operation Timed out). Please try to help mw
    [Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.]
    C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\config>
    C:\jdk1.5.0_16\bin\javaw.exe -client -classpath C:\jdevstudio10133\j2ee\home\oc4j.jar;C:\jdevstudio10133\jdev\lib\jdev-oc4j-embedded.jar -Dhttp.proxyHost=proxynj.liz.com -Dhttp.proxyPort=8080 -Dhttp.nonProxyHosts=*.liz.com|localhost|127.0.0.1|WNJ2042BHANAT01 -Dhttps.proxyHost=proxynj.liz.com -Dhttps.proxyPort=8080 -Dhttps.nonProxyHosts=*.liz.com|localhost|127.0.0.1|WNJ2042BHANAT01 -Xverify:none -XX:MaxPermSize=256m -DcheckForUpdates=adminClientOnly -Doracle.application.environment=development -Doracle.j2ee.dont.use.memory.archive=true -Doracle.j2ee.http.socket.timeout=500 -Doc4j.jms.usePersistenceLockFiles=false oracle.oc4j.loader.boot.BootStrap -config C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\config\server.xml
    [waiting for the server to complete its initialization...]
    Sep 8, 2008 12:54:34 PM oracle.oc4j.util.FileUtils autoUnpack
    INFO: Auto-unpacking C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\dms.war...
    Sep 8, 2008 12:54:34 PM oracle.oc4j.util.FileUtils unjar
    INFO: Unjar C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\dms.war in C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\dms
    Sep 8, 2008 12:54:34 PM oracle.oc4j.util.FileUtils autoUnpack
    INFO: Finished auto-unpacking C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\dms.war
    Sep 8, 2008 12:54:35 PM oracle.oc4j.util.FileUtils autoUnpack
    INFO: Auto-unpacking C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\connectors\datasources\datasources.rar...
    Sep 8, 2008 12:54:35 PM oracle.oc4j.util.FileUtils unjar
    INFO: Unjar C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\connectors\datasources\datasources.rar in C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\connectors\datasources\datasources
    Sep 8, 2008 12:54:35 PM oracle.oc4j.util.FileUtils autoUnpack
    INFO: Finished auto-unpacking C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\connectors\datasources\datasources.rar
    Sep 8, 2008 12:54:35 PM oracle.oc4j.util.FileUtils autoUnpack
    INFO: Auto-unpacking C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\datatags.ear...
    Sep 8, 2008 12:54:35 PM oracle.oc4j.util.FileUtils unjar
    INFO: Unjar C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\datatags.ear in C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\datatags
    Sep 8, 2008 12:54:35 PM oracle.oc4j.util.FileUtils autoUnpack
    INFO: Finished auto-unpacking C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\datatags.ear
    Sep 8, 2008 12:54:35 PM oracle.oc4j.util.FileUtils autoUnpack
    INFO: Auto-unpacking C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\datatags\webapp.war...
    Sep 8, 2008 12:54:35 PM oracle.oc4j.util.FileUtils unjar
    INFO: Unjar C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\datatags\webapp.war in C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\datatags\webapp
    Sep 8, 2008 12:54:41 PM oracle.oc4j.util.FileUtils autoUnpack
    INFO: Finished auto-unpacking C:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\applications\datatags\webapp.war
    Sep 8, 2008 12:54:41 PM com.evermind.server.XMLApplicationServerConfig randomizeJtaAdminPassword
    INFO: Updating JtaAdmin account
    Ready message received from Oc4jNotifier.
    Embedded OC4J startup time: 12488 ms.
    08/09/08 12:54:45 Oracle Containers for J2EE 10g (10.1.3.3.0) initialized
    Target URL -- http://156.146.42.111:8988/SRTutorialADFBC-UserInterface-context-root/faces/app/SRList.jspx

  • Oracle 9i lite application development using java

    hi all,
    I want to develop a applcation which interacts with the 9i lite database in java.Is there any emulator which will help me in developing this on a windows 2000 machine or winnt machine?
    i tried developing it in eVB but the emulator which come along with it does not support the 'oladoce' object..
    please if anybody has done something on this please help .. this is very urgent..
    thanks ..,
    sreekanth sreedharan

    Oracle 9i Lite is a multi-platform product and you need to specific the target OS for the database and the version of java.
    If you are planning to run your application in Win2000 you will have no problem using Oracle 9i Lite with the supplied
    jdbc drivers and any java development environment for J2SE. What you get is a laptop platform that works while not
    connected to the Internet
    If you are trying to using Oracle 9i Lite on the Palm with J2ME development on windows, it works fine with the Palm Emulator
    but I am not sure that the jdbc drivers are available for J2ME yet and I have not used them as I have for J2SE on windows
    I am also very interested in developing java applications for the palm using Oracle 9i Lite and I would appreciate feedback
    on the jdbc and other required sql extensions for the sun java cldc
    If you are talking about the PocketPC or other WinCE, I cannot help you but I have used Personal Java on WinCE but not yet
    attempted Oracle 9i Lite on those platforms

  • Can Oracle Application Diagnostics for Java used with Grid Control 10.2.0.3

    I have installed Grid Control 10.2.0.3 in Solaris 10.
    I was asked to install AD4J . Is it necessary to upgrade Grid Control to 10.2.0.4 for installing AD4J or can I use the present 10.2.0.3 version withour upgrading it ?

    Hello.
    We already have Grid Control 10.2.0.4 and just installed AD4J 10.2.0.4. This version of AD4J is not integrated with Grid Control, and can be setup on any server by unzipping the downloaded file (no installer). I did find the installation/configuration documentation lacking, but worked through it with a little help from Oracle Support.
    The AD4J console has the look and feel of Grid Control, but is totally separate app with its own Apache server, etc.
    Daren

  • Help for development Using Urdu

    Hi,
    I want to build oracle/developer application using Urdu language. I want to store the data in such a manner that i may also see it in reports in urdu.
    can any one help me?
    Regards
    Kashif

    Arabic is supported in oracle databases. but remeber that as many as you select language fo your database the size of database will be multiple to the number of language.

  • Good start to a .gitignore file for development using VS2010 and GitHub commits

    I apologize if this has already been answered; I searched and did not find any pointers to the information that I am looking for, but my google-fu is not always the best.
    After recently getting back into C# development and restarting using Virtual Studio, I've realized that, using the standard GitHub GUI client, I'm committing a huge amount of binary files.  Obviously, being as I'm just committing the top-level project
    directory and everything including build trees underneath it.
    Does anybody know of a good source to find a .gitignore file that will exclude most, if not conclusively all, of these files?  I only want the files essential to develop the project on the repository; I have a free account, I can't handle the amount
    of space being used.  Basically whatever is the bare minimum source and directory hierarchy required to rebuild the project in a new instance of Virtual Studio.
    Thanks for your time and consideration on this matter.  Any pointers to relevant links or direct help appreciated.
    -Damon Getsman

    Hi Damon,
    I am glad that you have solved the problem and thanks for your share us the solution here, so it would be helpful for other members who get the same issue.
    Best Regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Tutorial for Notification Using SQL datafeeder

    I am looking for tutorials to do notification using the SQL datafeeder. The link provided is dead.
    Anyone knows where I can find it ?
    j.

    Do you mean this one?
    http://otn.oracle.com/tech/wireless/tutorials/10g/databasetriggersnotifications.pdf

  • Best practice for development using REST API - OData

    Hi All, I am new to REST. I am a developer who works mostly in server-side code using Visual Studio. Now that Microsoft is advocating to write code using REST API instead of server-side code or client side object model, I am trying to use REST API.
    I googled and most of the example shows to write a code and put it on Content Editor/Script Editor. How to organize code and deploy to the staging/production in this scenario? Is there any Best Practice or example around this?
    Regards,
    Khushi

    If you are writing code in aspx or cs it does not mean that you need to deploy it in the SharePoint server, it could be any other application running from your remote server. What I mean it you can use C# & Rest API to connect to SharePoint server.
    REST API in SharePoint 2013 provides the developers with a simple standardized method of retrieving information from SharePoint and it can be used from any technology that is capable of sending standard HTTP requests.
    Refer to the following blog that provide your more details about comparison of the major features of these programming choices/
    http://msdn.microsoft.com/en-us/library/jj164060.aspx#RESTODataA
    http://dlr2008.wordpress.com/2013/10/31/sharepoint-2013-rest-api-the-c-connection-part-1-using-system-net-http-httpclient/
    Hope this helps
    --Cheers

  • Tutorial for Developing Flex Mobile applications.

    Hello all,
                 Can anyone provide me Tutorials to devleop  Flex Mobile applications which access data from SAP Netweaver Gateway via Flash Builder Plugin?
    Thanks

    This is not a product forum... do you need the flash builder forum?
    How to Select a Forum http://forums.adobe.com/docs/DOC-1015

  • How to "save with options" for development using a different version of LV

    Hello,
    I have an application written in LV 6.0 on a different computer. I am upgrading the program on my computer also using LV 6.0 ( I also have LV 8.5).  When I try to open the file that I saved on original computer on my computer it tries to open it with verion 8.5, but I want to use 6.0. How can I modify the original program using the same and only version that is on original computer on my computer? Once modified I want to run on the original computer which only has version 6.0. Hope this is clear.
    Thanks,
    JS

    Be careful, once a VI is saved in 8.5 you can't save it back to 6.0. You'd have to go through several versions of LabVIEW to do that.
    To make sure a VI is opened in 6.0, launch LV 6.0 first and then open the VI (by double-clicking on it in explorer or via file open in LV).
    If LabVIEW is not running and you double-click a VI it will start the last LV version used.
    Hope this helps,
    Daniel

Maybe you are looking for