Problém byl v tom, že Aplikační server (a vše z něj volané) je služba spouštěná pod systémovým účtem. Volané DLL se potřebovalo přes ony mailsloty spojit s jinou aplikací, ta však byla spuštěná pod uživatelským účtem.
J.N.
[EMAIL PROTECTED]
cz Komu: [email protected]
Odeslal: Kopie:
konference-bounc Předmět: Volani dll z
aplikacniho serveru
[EMAIL PROTECTED]
24.10.2005 09:25
Odpovězte prosím
uživateli Java
Potřebujeme volat z naší javovské aplikace cizí dll. Máme jeji rozhraní
(parametry unsigned char, void* a DWORD&). Jeji výhodou je možnost tyto
vstupní i výstupní parametry logovat do souboru. Dále o něm víme, že
používá pro spojení s dalším prostředkem mailsloty, ale jinak je to černá
skříňka.
Napsali jsme si v C vlastní dll využívající javovské rozhraní pro volání
dll (JNI)
static {
System.loadLibrary("nasedll");
}
V našem dll převedeme javovské parametry (Stringy) na parametry, které cizí
dll akceptuje a teprve z tohoto našeho dll voláme cizí dll.
Pokud pracujeme ve vývojovém prostředí (JDeveloper), vše se chová korektně.
Jakmile ale uděláme deploy na aplikační server (Oracle 10g), cizí dll
nefunguje tak jak má. Logování parametrů nam ale říká, že do cizího dll
vstupují přesně ty samé parametry jako při volání z vývojového prostředí.
Obě dll jsou nahrány do windows\system32 adresáře.
Nemohou být na aplikačním serveu nastaveny nějaké restrikce ?
