Не находит метод при вызове из LS2J

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#1
Создал библу в библиотеках.
Описал метод как
Код:
public static boolean start(String sU, String sP)
метода main нет, "start" в список зарезервированных слов в Java не входит
при вызове из LS2J пишет:
<!--QuoteBegin-"IBM Lotus Notes"+-->
<table border="0" cellpadding="0" cellspacing="0" align="center" width="98%"> [tr] <td class="vbquote"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="75" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="50px"> [tr] <td class="vbquote" width="28" valign="top">
</td> <td class="vbquote" width="100%" style="background-image: url('style_images/ckr/quotes/quote-bg.gif'); background-position: center;" valign="middle"><span class="vbquote">Цитата:</span></td> <td class="vbquote" valign="top">
</td> [/tr] </table> </td> <td class="vbquote" align="left" style="background-image: url('style_images/ckr/quotes/quot-lr-bg.gif')" valign="bottom"></td><td class="vbquote" width="0" align="left" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="200"> [tr] <td class="vbquote" valign="top">
</td> <td class="vbquote" width="100%" style="background-image: url('style_images/ckr/quotes/quot-bye-bg.gif')" align="left" valign="middle" nowrap="nowrap"><span class="vbquote">("IBM Lotus Notes")</span></td> <td class="vbquote" valign="top">
</td> [/tr] </table> </td><td class="vbquote" width="100%" align="right" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="100%"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" style="background-image: url('style_images/ckr/quotes/quot-top-bg.gif')" width="100%" valign="middle"></td> <td class="vbquote" align="left" valign="top">
</td> [/tr] </table> </td> [/tr] </table> </td> [/tr] </table> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-left.gif')"></td> <td class="vbquotemain" width="100%" valign="top"></td> <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-right.gif')"></td> [/tr] [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quot-left-bg.gif')"></td> <td class="vbquotemain" width="100%" valign="top"><!--QuoteEBegin-->Instance member START does not exist<!--QuoteEnd--></td> [/tr] [tr] [/tr] </table> </td> [/tr] </table>
<!--QuoteEEnd-->
Код:
public boolean start(String sU, String sP)
т.е. без static тоже не помогает.
methods при переборе видит этот метод + перечисляет методы, которых у меня в классе нет
Самое интересное, что похожий вроде класс с хэшем нормально работает.
Подскажите, добры люди, что его такое, и как подлечить? :)
 

nvyush

Lotus team
22.04.2009
2 317
0
#2
В LS должно быть что-то вроде
Код:
	Dim jSession As JavaSession
Dim jClass As JavaClass
Dim jMethod As JavaMethod
Dim res As Boolean

Set jSession = New JavaSession()
Set jClass = jSession.GetClass("yourPackage/YourClass")
Set jMethod = jClass.GetMethod("start", "(Ljava/lang/String;Ljava/lang/String;)V")
'	Set jMethod = jClass.GetMethod("start", "(Ljava/lang/String;Ljava/lang/String;)Z") 'или так?
res = jMethod.Invoke(, arg1, arg2)
 

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#3
Это так вызывать надо, когда > 1-го параметра? Или почему именно так в этом случае?
 

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#4
Теперь Invoke требует JavaObject..
<!--QuoteBegin-"Help"+-->
<table border="0" cellpadding="0" cellspacing="0" align="center" width="98%"> [tr] <td class="vbquote"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="75" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="50px"> [tr] <td class="vbquote" width="28" valign="top">
</td> <td class="vbquote" width="100%" style="background-image: url('style_images/ckr/quotes/quote-bg.gif'); background-position: center;" valign="middle"><span class="vbquote">Цитата:</span></td> <td class="vbquote" valign="top">
</td> [/tr] </table> </td> <td class="vbquote" align="left" style="background-image: url('style_images/ckr/quotes/quot-lr-bg.gif')" valign="bottom"></td><td class="vbquote" width="0" align="left" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="200"> [tr] <td class="vbquote" valign="top">
</td> <td class="vbquote" width="100%" style="background-image: url('style_images/ckr/quotes/quot-bye-bg.gif')" align="left" valign="middle" nowrap="nowrap"><span class="vbquote">("Help")</span></td> <td class="vbquote" valign="top">
</td> [/tr] </table> </td><td class="vbquote" width="100%" align="right" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="100%"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" style="background-image: url('style_images/ckr/quotes/quot-top-bg.gif')" width="100%" valign="middle"></td> <td class="vbquote" align="left" valign="top">
</td> [/tr] </table> </td> [/tr] </table> </td> [/tr] </table> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-left.gif')"></td> <td class="vbquotemain" width="100%" valign="top"></td> <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-right.gif')"></td> [/tr] [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quot-left-bg.gif')"></td> <td class="vbquotemain" width="100%" valign="top"><!--QuoteEBegin-->JavaObject. The instance of an object, if the method is not static. Optional if the method is static.<!--QuoteEnd--></td> [/tr] [tr] [/tr] </table> </td> [/tr] </table>
<!--QuoteEEnd-->Он у меня stasic, но всё равно требует. Ерунда какая-то...

Перезагрузил Лотас, он теперь выплёвывает:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">LS2J Error: Threw java.security.AccessControlException: Access denied (java.lang.RuntimePermission exitVM.3)</div></div><div class="sp-body"><div class="sp-content">java.security.AccessControlException: Access denied (java.lang.RuntimePermission exitVM.3)
at java.security.AccessController.checkPermission(AccessController.java:108)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:544)
at COM.ibm.JEmpower.applet.AppletSecurity.superDotCheckPermission(AppletSecurity.ja
va:1449)
at COM.ibm.JEmpower.applet.AppletSecurity.checkRuntimePermission(AppletSecurity.jav
a:1311)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1611)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1464)
at java.lang.SecurityManager.checkExit(SecurityManager.java:756)
at java.lang.Runtime.exit(Runtime.java:99)
at java.lang.System.exit(System.java:279)
at FileDownloader.start(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at lotus.domino.JavaConnectInvoker.invoke(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at lotus.domino.JavaConnectLoader.invoke(Unknown Source)
 
13.03.2009
625
1
#5
Перезагрузил Лотас, он теперь выплёвывает:
Даунлодер пытается прихлопнуть JVM, вызывая System.exit(). JVM валиться на собирается( и ее в общем-то можно понять )
Вы уверены, что действительно хотите уложить лотусовую жабамашину? Если так - то можно прописать соответсующий restriction в %lotushome%/jvm/lib/security/java.policy. Но я бы не советовал :)
 

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#6
turumbay
Угадали!) Вот бы мне так влёт разбирать!..
Но уже радует, что выполняется код библы :)
Непонятно только.. - это что же, при любом изменении в Java-библе Лотус передёргивать?)
 

lmike

нет, пердело совершенство
Премиум
27.08.2008
6 567
263
#7
это что же, при любом изменении в Java-библе Лотус передёргивать?)
если либа лежит в ФС - да...
но никто не мешает побить её на части - часть в ФС (более-менее постоянная), а изменяемая в БД
 

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#8
да нет.. в БД лежит. И в основном я её и не менял даже, а менял LS-код. Но чего-то такое ощущение, что выполнение кода не зависело от того, меняю я что-то или нет в коде, т.к. результат был один и тот же, а потом ничего не менял и вдруг бабах и ошибка стала вылетать.. Такое впечатление, что он выполняет закэшированный код. а потом, когда ему вздумается обновляет кэш..

Переезжаем сюда)
 

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#9
Действительно, при любом изменении в Java-библиотеке, находящейся в БД, надо также перезагружать Лотус, т.к. изменения сразу не подхватываются.. А иногда не то, что Лотуса, даже перезагрузка компа не помогает - Нотес подхватывает изменения как-то сам по себе.
Может есть какие-то настройки кэша? Может можно установить, чтобы кеш сбрасывался всегда?

И ещё глюк: окно Java-консоли при открытии иногда не открываться вообще. Потом, после нескольких запусков кнопки оно может открыться, а может и нет. Никто не знает как с этим бороться?