Я выношу вопрос из другого топика.
Я пробую использовать Java Connector, чтобы из отдельного внешнего приложения (не на саповском AS). то есть например из самописной корпоративной совтины, которая может крутиться где угодно на винде, линуксе, на терминальном сервере. Короче, использование открытого пароля очень нежелательно.
Получилось заставить тестовый пример работать, получилось передать параметры и разобраться как RFC возвращает результат. Все ОК.
У меня новый вопрос: в примере параметры соединения пишутся в файл. прямо с паролем!
Как законнектиться к САП и не оставить пароля кроме как в исходнике?
Прошу принять во внимание, что я с Явой даже рядом не стоял ;-(
Code:
static String DESTINATION_NAME1 = "ABAP_AS_WITHOUT_POOL";
static String DESTINATION_NAME2 = "ABAP_AS_WITH_POOL";
static
{
Properties connectProperties = new Properties();
connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "SAPSERVERADDRESS");
connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "00");
connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "230");
connectProperties.setProperty(DestinationDataProvider.JCO_USER, "SAPUSER1");
connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "SAPPASSAP;-)");
connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "en");
createDestinationDataFile(DESTINATION_NAME1, connectProperties);
connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3");
connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10");
createDestinationDataFile(DESTINATION_NAME2, connectProperties);
}
static void createDestinationDataFile(String destinationName, Properties connectProperties)
{
File destCfg = new File(destinationName+".jcoDestination");
try
{
FileOutputStream fos = new FileOutputStream(destCfg, false);
connectProperties.store(fos, "for tests only !");
fos.close();
}
catch (Exception e)
{
throw new RuntimeException("Unable to create the destination files", e);
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws JCoException {
// TODO code application logic here
JCoDestination destination = JCoDestinationManager.getDestination(DESTINATION_NAME1);