0 / 0 / 0
Регистрация: 02.11.2007
Сообщений: 27
|
|
1 | |
Java агент ошибка при вызове веб сервиса20.09.2009, 17:36. Показов 20033. Ответов 6
Метки нет (Все метки)
Добрый день!
Агент вызывающий Web-сервис с помощью Axis, вызывает ошибки если файлы jar (axis.jar, commons-discovery-0.2.jar и commons-logging-1.0.4.jar) непосредственно добавлены в агент. Если файлы скопированы в \jvm\lib\ext Notes-клиента, то агент выполняется нормально. В чем проблема, поможет кто-нибудь? Спасибо. Ошибка: <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">java.lang.ExceptionInInitializerError и AccessControlException</div></div><div class="sp-body"><div class="sp-content">at org.apache.axis.handlers.BasicHandler.<clinit>(BasicHandler.java:43) at org.apache.axis.client.Service.getAxisClient(Service.java:104) at org.apache.axis.client.Service.<init>(Service.java:113) at JavaAgent.NotesMain(JavaAgent.java:19) at lotus.domino.AgentBase.runNotes(Unknown Source) at lotus.domino.NotesThread.run(Unknown Source) Caused by: org.apache.commons.discovery.DiscoveryException: Unable to instantiate implementation class for org.apache.commons.logging.LogFactory ***** java.security.AccessControlException: access denied (java.lang.RuntimePermission getClassLoader) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:292 ) at java.security.AccessController.checkPermission(AccessController.java:476) at java.lang.SecurityManager.checkPermission(SecurityManager.java:538) at COM.ibm.JEmpower.applet.AppletSecurity.superDotCheckPermission(AppletSecurity.ja va:1422) at COM.ibm.JEmpower.applet.AppletSecurity.checkRuntimePermission(AppletSecurity.jav a:1284) at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1498) at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1437) at java.lang.ClassLoader.getParent(ClassLoader.java:1038) at org.apache.commons.discovery.resource.ClassLoaders.isAncestor(ClassLoaders.java: 141) at org.apache.commons.discovery.resource.ClassLoaders.put(ClassLoaders.java:114) at org.apache.commons.discovery.resource.ClassLoaders.getLibLoaders(ClassLoaders.ja va:176) at org.apache.commons.discovery.tools.DiscoverClass.find(DiscoverClass.java:355) at org.apache.commons.discovery.tools.DiscoverClass.newInstance(DiscoverClass.java: 579) at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java :418) at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java :378) at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45) at java.security.AccessController.doPrivileged1(Native Method) at java.security.AccessController.doPrivileged(AccessController.java:287) at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41) at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33) at org.apache.axis.handlers.BasicHandler.<clinit>(BasicHandler.java:43) at org.apache.axis.client.Service.getAxisClient(Service.java:104) at org.apache.axis.client.Service.<init>(Service.java:113) at JavaAgent.NotesMain(JavaAgent.java:19) at lotus.domino.AgentBase.runNotes(Unknown Source) at lotus.domino.NotesThread.run(Unknown Source) at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java :426) at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java :378) at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45) at java.security.AccessController.doPrivileged1(Native Method) at java.security.AccessController.doPrivileged(AccessController.java:287) at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41) at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33) ... 6 more Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission getClassLoader)
0
|
20.09.2009, 17:36 | |
Ответы с готовыми решениями:
6
Ошибка При Вызове Внешнего Веб Сервиса передача параметров при вызове метода веб-сервиса В чем может быть ошибка при вызове сервиса? Ошибка автоматического создания wsdl при деплое проекта веб-сервиса на IBM WAS |
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
20.09.2009, 17:45 | 2 |
ужо скокам говорено - не кладите сторонние либы в базу...
туды их надо всегда а причина - класслоадер так работает у Нотусей, сложные классы имеют статические методы, и классы типа синглтон (а как вы реализуете в рамках агента - ежели он убивается), и свою стр-ру нитей, всё это jvm должна грузить один раз и выгружать по закрытии, а не при каждом старте агента
0
|
0 / 0 / 0
Регистрация: 02.11.2007
Сообщений: 27
|
|
20.09.2009, 17:50 | 3 |
Я знаю что так будет работать. Вебсервис будет вызываться с машин пользователей, придется копировать каждому пользователю эти файлы в jvm/lib/ext/. Других решений нет?
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
20.09.2009, 17:51 | 4 |
нет других решений и быть не должно (в тек. реализации jvm от ИБМ) - читайте выше (я развернул тезис)
автоматизируйте (проверяйте при старте агента, на присут. библы, и копируйте - ежели чё, просите передернуть Нотуса)
0
|
0 / 0 / 0
Регистрация: 02.11.2007
Сообщений: 27
|
|
20.09.2009, 17:54 | 5 |
Ясно, спасибо за информацию!
0
|
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 615
|
|
20.09.2009, 18:37 | 6 |
Сообщение от twister
на самом деле в семерке axis есть. тока об этом почему-то молчат. замена import org.apache.axis.client.Call; import org.apache.axis.client.Service; на import lotus.domino.axis.client.Call; import lotus.domino.axis.client.Service; ну и т.д. и вперед. тока помница, пришлось создать свой HTTPSender - неверно формировался заголовок пакета: <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class=java>import java.util.Hashtable; import lotus.domino.axis.AxisFault; import lotus.domino.axis.MessageContext; import lotus.domino.axis.client.Call; import lotus.domino.axis.transport.http.HTTPConstants; import lotus.domino.axis.transport.http.HTTPSender; public class HTTPModifiedHeaderHandler extends HTTPSender { public static final String CVS_VERSION = "$Revision$"; public void invoke(MessageContext msgCtx) throws AxisFault { System.out.println( msgCtx ); modifyHTTPHeader(msgCtx); super.invoke(msgCtx); } public void modifyHTTPHeader(MessageContext msgCtx) { Hashtable headers = (Hashtable) msgCtx .getProperty(HTTPConstants.REQUEST_HEADERS); if (headers == null) { headers = new Hashtable(); msgCtx.setProperty(HTTPConstants.REQUEST_HEADERS, headers); } Call call = (Call) msgCtx.getProperty("call_object"); String s = call.getSOAPActionURI(); if ( s == null ) { s = ""; }; headers.put("SOAPAction", s); } }[/CODE] плюс добавить в проект корректный <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">client-config.wsdd</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class=xml><?xml version="1.0" encoding="UTF-8"?> <deployment name="defaultClientConfig" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/provyders/java"> ..... <transport name="http" pyvot="java:HTTPModifiedHeaderHandler" /> сюда имя класса вместе с пакетом .... </deployment>[/CODE] идея взята с http://www.unimatrix-0.de/index.php?option...s&Itemid=55
0
|
0 / 0 / 0
Регистрация: 08.08.2009
Сообщений: 178
|
|
21.09.2009, 09:48 | 7 |
В восьмерке появились Web Service Consumer. Вы не пробовали их?
Они, конечно, ограниченнее, чем Axis, зато родные. Не обязательно даже юзерам ставить восьмерку - можно поставить восьмые сервера и веб-сервисы вызывать серверным агентом.
0
|
21.09.2009, 09:48 | |
21.09.2009, 09:48 | |
Помогаю со студенческими работами здесь
7
Ошибка при вызове деструктора (при вызове delete в деструкторе) Ошибка веб сервиса на внешнем адресе Java-агент Vs Ls-агент — кто быстрее? Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |