cancel
Showing results for 
Search instead for 
Did you mean: 

Where does keystore_api.jar come from?

Former Member
0 Kudos

Hello, I am trying to find the keystore_api.jar file. I find many references to it on SCN, but not where it is packaged from. Basis team said its not on the server (unless packaged inside of something else).

Background: I want to reference the SAP Java Keystore from graphic message mapping...I believe this should be the library com.sap.aii.security.lib.KeyStoreManager.

However, my 7.11 system does not even seem to have com.sap.aii.security.lib. We have the SAPCryptoLib installed, but is there something further we must install for the SAP Java KeyStore / KeyStoreManager?

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

I found this great looking wiki for where to get the correct libraries for development:

http://wiki.sdn.sap.com/wiki/display/XI/Where+to+get+the+libraries+for+XI+development

From that information, maybe i should be looking for:

ext/security.class: sap.com~tc~sec~ssf~core.jar

However, I can't find that JAR on our server either. The search continues...

german_meneses
Explorer
0 Kudos

Hi Aaron, could you find sap.com~tc~sec~ssf~core.jar file in server? I'm need this file and I couldn't find in my PI 7.31 server. A lot of thanks for any info.

Regards,

Answers (2)

Answers (2)

Former Member
0 Kudos

Update: If I take only KeystoreManager.class from the large client framework JAR, and turn this into its own JAR, I can create it as an Imported Archive. I think this confirms my thinking that the other JAR is too large (12MB compressed) and just times out when importing.

I added this new smaller JAR object into "Archives Used"

However, I'm still not able to create a KeystoreManager object. (Symbol not found)

I added an Import statement in UDF if referencing as an Imported Archive...but I tried a few paths and cannot seem to get it. Any suggestions?

former_member181985
Active Contributor
0 Kudos

Hi Aaron,

as per Michal's blog: http://scn.sap.com/community/pi-and-soa-middleware/blog/2007/05/09/xipi-secure-storage-service-with-...

it is,

tc_sec_securestorage_service.jar

which can be found in: \j2ee\cluster\server0\bin\services\tc~sec~securestorage~service


and


frame.jar

which can be found in: \j2ee\cluster\server0\bin\system

Regards,

Praveen Gujjeti

Former Member
0 Kudos

Thanks for the response Praveen, but it doesn't appear that these have to do with the NetWeaver KeyStoreManager objects.

Do you have any personal experience with accessing the certificate keystore programmatically?

former_member181985
Active Contributor
0 Kudos

Hi Aaron,

Sorry I misread your requirement. But, it seems you have been chasing for this with other old thread: http://scn.sap.com/thread/372807

As per your requirement in above thread, I found the com.sap.engine.interfaces.keystore.KeystoreManager in PI repository/ESR client frameworks sap.com~tc~je~clientlib~impl.jar. Try downloading from browser using XI main page link as: http://<XIserver>:<port>/rep/repository/sap.com~tc~je~clientlib~impl.jar

Can you also check the below links:-

As per above thread, usr/sap/<SID>/<instance>/j2ee/cluster/bin/interfaces/keystore_api/lib/private/sap.comtcjekeystore_apiAPI.jar

Help

Regards,

Praveen

Former Member
0 Kudos

Good call Praveen! That .jar file downloaded just fine and when I unzipped it had the KeystoreManager.class file under the com.sap.engine.interfaces.keystore path.

However, when I try to import this in UDF it cannot be found:

"package com.sap.engine.interfaces.keystore does not exist

import com.sap.engine.interfaces.keystore.KeystoreManager;"

Do you know how I can use / reference / import it in a UDF?

former_member181985
Active Contributor
0 Kudos

I might be silly, but I hope could have already done the below step.

add imported archive in mapping under Functions --> Archives used section

check attached snap shot.

Add import statements in UDF as well. e.g., com.sap.engine.interfaces.keystore.* (note: no explicit import statement and semicolon at the end)

Former Member
0 Kudos

Thanks Praveen. Just to be clear, you are suggesting to create new Imported Archive object, then reference the .jar file I downloaded using the path you gave previous?

Assuming this, I tried, but I think that file is so big that it breaks the server connection every time I try to save it as an imported archive on my dev system.

It seems strange that we would download a file from the server, and have to re-import it back to the same server!

Do you know why the class cannot be referenced directly if it is already installed on the server? Maybe I'm misunderstanding your suggestion.

marksmyth
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Aaron,

I think note 1308158 Adding used "Imported Archive" references in Message Mapping, describes this latest issue with the 'package xxx does not exist' error.

Regards

Mark

Former Member
0 Kudos

Thanks Mark. This note sounds like it is affecting mappings that used Imported Archive or external jars before upgrading.

In this case I'm trying to develop something new.

I would like to reference the KeystoreManager library which seems to be installed with my PI already.

I think Praveen suggested downloading this .JAR and reimporting it back to the same server but through an Imported Archive object. I'm not convinced this is the right way and I couldn't get it to work, maybe because of its size. It seems to have lots of different adapter client functionality built into that Jar.

I tried the approach in the note anyway but it didn't help.

Back to the beginning of my post...I see many examples on SCN about referencing the NWA Keystore. Most of them say that the keystore_api.jar is required. I wonder where this jar comes from? Praveen has pointed a different jar on my server where the keystoremanager.class is located. But this jar is huge and seems to time out when bringing back in as an imported function.

Any more ideas on where the source of keystore_api.jar is, or how I can reference the KeystoreManager class using an import statement?

Many thanks again,

Aaron