Использовать веб-сервис WSRR вне веб-приложения

У меня есть веб-приложение, написанное в основном другими пользователями на основе JSF 2, Mybatis, Spring 3 и десятков других библиотек, работающее на Weblogic, оно работает, и теперь мне нужно создать отдельное приложение командной строки, чтобы запланировать выполнение некоторых уже существующих задач. в веб-приложении.

Я добавил класс с main метод для поддержки только одной кодовой базы с другим процессом сборки для генерации исполняемого файла JAR вместо WAR, Используя Spring ClassPathXmlApplicationContext Мне удалось воссоздать контекст веб-приложения, получить доступ к компонентам базы данных и использовать их, но я застрял с вызовом WSRR, который завершается неудачно.

Команды:

GraphQuery graphQuery = 
                (GraphQuery)DataFactory.INSTANCE.create(TypeConstants.SR_URI, TypeConstants.TYPE_GRAPHQUERY);
            graphQuery.setQueryExpression("/WSRR/GenericObject[@CFT_APPLIC='DS" + param + "']");

ошибка с длинным стеком, имеющим исключение root

Caused by: java.lang.NullPointerException
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:960)
    at com.ibm.ws.webservices.engine.resources.ProjectResourceBundle$Context.loadBundle(ProjectResourceBundle.java:474)
    at com.ibm.ws.webservices.engine.resources.ProjectResourceBundle.getBundle(ProjectResourceBundle.java:372)
    at com.ibm.ws.webservices.engine.resources.ProjectResourceBundle.getBundle(ProjectResourceBundle.java:341)
    at com.ibm.ws.webservices.engine.resources.MessagesConstants.<clinit>(MessagesConstants.java:93)

Я обнаружил, что некоторые классы и конфигурации предоставляются сервером приложений во время выполнения и не имеют представления о том, как заменить их вне сервера приложений.

В справочнике IBM говорится (стр. 120-121), что можно получить доступ к веб-службе с помощью клиента Java, но требуется подходящий EJB во время выполнения.

Как я могу реплицировать необходимые параметры EJB вне сервера приложений? Я пытался использовать отладчик Eclipse, чтобы следить за выполнением приложения и извлекать их, но это не удается, вероятно, потому что классы загружаются загрузчиком классов Weblogic.

0 ответов

Другие вопросы по тегам