Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/105: Рейтинг темы: голосов - 105, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 02.11.2007
Сообщений: 27
1

Java агент ошибка при вызове веб сервиса

20.09.2009, 17:36. Просмотров 19413. Ответов 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:10 4)
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(AccessCon trolContext.java:292
)
at java.security.AccessController.checkPermission(AccessControl ler.java:476)
at java.lang.SecurityManager.checkPermission(SecurityManager.ja va:538)
at COM.ibm.JEmpower.applet.AppletSecurity.superDotCheckPermissi on(AppletSecurity.ja
va:1422)
at COM.ibm.JEmpower.applet.AppletSecurity.checkRuntimePermissio n(AppletSecurity.jav
a:1284)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(Apple tSecurity.java:1498)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(Apple tSecurity.java:1437)
at java.lang.ClassLoader.getParent(ClassLoader.java:1038)
at org.apache.commons.discovery.resource.ClassLoaders.isAncesto r(ClassLoaders.java:
141)
at org.apache.commons.discovery.resource.ClassLoaders.put(Class Loaders.java:114)
at org.apache.commons.discovery.resource.ClassLoaders.getLibLoa ders(ClassLoaders.ja
va:176)
at org.apache.commons.discovery.tools.DiscoverClass.find(Discov erClass.java:355)
at org.apache.commons.discovery.tools.DiscoverClass.newInstance (DiscoverClass.java:
579)
at org.apache.commons.discovery.tools.DiscoverSingleton.find(Di scoverSingleton.java
:418)
at org.apache.commons.discovery.tools.DiscoverSingleton.find(Di scoverSingleton.java
:378)
at org.apache.axis.components.logger.LogFactory$1.run(LogFactor y.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(L ogFactory.java:41)
at org.apache.axis.components.logger.LogFactory.<clinit>(LogFac tory.java:33)
at org.apache.axis.handlers.BasicHandler.<clinit>(BasicHandler. java:43)
at org.apache.axis.client.Service.getAxisClient(Service.java:10 4)
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(Di scoverSingleton.java
:426)
at org.apache.commons.discovery.tools.DiscoverSingleton.find(Di scoverSingleton.java
:378)
at org.apache.axis.components.logger.LogFactory$1.run(LogFactor y.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(L ogFactory.java:41)
at org.apache.axis.components.logger.LogFactory.<clinit>(LogFac tory.java:33)
... 6 more
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission getClassLoader)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2009, 17:36
Ответы с готовыми решениями:

Ошибка При Вызове Внешнего Веб Сервиса
Всем доброе время суток: пытаюсь вызвать внешний сервис UPS для получения стоимости курьерской...

передача параметров при вызове метода веб-сервиса
Написал метод в веб-сервисе: public bool SaveLogErrors(string myKey, List&lt;string&gt; ListErrs)...

В чем может быть ошибка при вызове сервиса?
В чем может быть проблема при вызове сервиса? Изучаю service, и возник вопрос по-поводу, передачи...

Ошибка автоматического создания wsdl при деплое проекта веб-сервиса на IBM WAS
Доброе время суток. Уже пол года как занимаюсь разработкой JAX-WS сервисов. И возникла ошибка...

6
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
20.09.2009, 17:45 2
ужо скокам говорено - не кладите сторонние либы в базу...


Агент вызывающий Web-сервис с помощью Axis, вызывает ошибки если файлы jar (axis.jar, commons-discovery-0.2.jar и commons-logging-1.0.4.jar) непосредственно добавлены в агент. Если файлы скопированы в \jvm\lib\ext Notes-клиента, то агент выполняется нормально. В чем проблема, поможет кто-нибудь? Спасибо.
jvm/lib/ext/
туды их надо всегда
а причина - класслоадер так работает у Нотусей, сложные классы имеют статические методы, и классы типа синглтон (а как вы реализуете в рамках агента - ежели он убивается), и свою стр-ру нитей, всё это 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
Я знаю что так будет работать. Вебсервис будет вызываться с машин пользователей, придется копировать каждому пользователю эти файлы в jvm/lib/ext/. Других решений нет?
помница - чуть не убились конкретно на этой задаче. но решили

на самом деле в семерке 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2009, 09:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Ошибка при вызове деструктора (при вызове delete в деструкторе)
Не могу найти ошибку, при вызове деструктора от класса, который был создан при помощи конструктора...

Ошибка веб сервиса на внешнем адресе
Добрый день! Подскажите пожалуйста в чём может быть проблема? Есть веб сервер, на апаче...

Java-агент Vs Ls-агент — кто быстрее?
Бэк-агента можно написать как на лс, так и на яве. Кто-нибудь обладает достоверной информацией,...

Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи!
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.