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 RHi,
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?
SaschaHi 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.zipIn "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 thanksThe 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 ; -
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 sreedharanOracle 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
KashifArabic 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 GetsmanHi 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,
KhushiIf 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?
ThanksThis 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,
JSBe 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
-
How do I stop firefox from pre-downloading a file during a file download prompt?
I use DownThemAll as my download manager for files generally over 10MB, as my internet connection is generally too slow for firefox to download a file larger then this without firefox "finishing" a download before it's complete, corrupting the file.
-
As a continuation above, who are the people who have been praising Apple to the heavens? For those of us who aren't tech-savvy, Apple totally blows. There is next to nothing intuitive about their products and they seem giddy about giving their cust
-
Is Audition 3.5 compatible with Windows 8.1 64-bit?
Is Audition 3.5 compatible with Windows 8.1 64-bit? If not, is there an upgrade that is compatible that does not require subscribing to Creative Cloud? I only need the standalone software to edit my music.
-
What Resolution to use from Istock for Youtube?
I'm trying to make my first movie which will be uploaded to Youtube. I will shoot my video in 1080. I am assuming (not always smart) that I should use the standard 4:30 aspect ratio. I want to use include some stock video footage...probably from isto
-
Currently using HP34401A driver and use the example code to display the result of the reading. Data Type declaration of the variables according to the sample ViReal64 reading; ViChar msgStr[256]; checkErr( hp34401a_Read (h