|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
Как запустить клиента на JBoss?28.10.2010, 13:24. Показов 4939. Ответов 24
Метки нет (Все метки)
Господа!
Was been deployed beans in JBoss. А как собственно запаковать и запустить клиента, чтоб протестировать его?
0
|
|
| 28.10.2010, 13:24 | |
|
Ответы с готовыми решениями:
24
Как запустить приложение в JBoss через консоль? Кто-нибудь писал IIOP клиента под JBoss? Не могу запустить JBoss |
|
3 / 3 / 0
Регистрация: 25.08.2010
Сообщений: 213
|
|
| 28.10.2010, 13:28 | |
|
клиента вроде как не пакуют
![]() просто берешь клиента и подсовываешь ему (кладешь в ту же директорию где и клиент) файлик jndi.properties который настроен на твой jboss ест ь сайтик jboss.ru - там все подробно описано
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 28.10.2010, 13:51 [ТС] | |
|
на сайтике JBoss.ru пока не нашел ссылку
Но вот в Sun AppAervere клиент с stub и тп упаковывается в JAR и запускается потом типа appclient.bat (лежит в bin у SUN) так appclient -client MyClient.jar А как это в JBoss делается?
0
|
|
|
3 / 3 / 0
Регистрация: 25.08.2010
Сообщений: 213
|
|
| 29.10.2010, 13:48 | |
|
создаешь файл который называется jndi.properties и кладешь его в директорию где лежит твой клиент.
Файл должен содержать следующее: java.naming.factory.initial=org.jnp.inte rfaces.NamingContextFactory java.naming.provider.url=jnp://localhost:1099 java.naming.factory.url.pkgs=org.jboss.n aming:org.jnp.interfaces запускаешь клиент как обычное ява приложение. http://www.jboss.ru/translate/jboss24/ch01s15.html - вот как это описано в доке по JBoss'у
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 02.11.2010, 14:22 [ТС] | |
|
Спасибо Kolinus.
Запускается клиент у меня так (Client.class находится в папке client вместе с файлом jndi.properties) <target name='run-client'> <java classname='client.StuffClient1' fork='yes'> <classpath> <pathelement path='${client}'/> <fileset dir='${jboss.home}/server/default/lib'> <include name='*.jar'/> </fileset> <fileset dir='${jboss.home}/lib'> <include name='*.jar'/> </fileset> </classpath> </java> </target> Но теперь если я захочу запускать клиента на другой машине и на другой JVM, то мне надо будет перенести на эту машину все jar файлы из директорий JBOSS_HOME/lib и JBOSS_HOME/server/default/lib ![]() Или как?
0
|
|
|
3 / 3 / 0
Регистрация: 25.08.2010
Сообщений: 213
|
|
| 03.11.2010, 11:20 | |
|
нет
внимательно прочитай файл jndi.properties - там есть строчка с указанием провайдера нейминг контекста - localhost:1099 - просто указываешь нужный ай-пи и все таким образом сервер работает на одной машине - клиент на другой
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 03.11.2010, 12:34 [ТС] | |
|
Указываю в jndi.properties
java.naming.factory.initial=org.jnp.inte rfaces.NamingContextFactory java.naming.provider.url=jnp://localhost:1099 java.naming.factory.url.pkgs=org.jboss.n aming:org.jnp.interfaces копирую в отдельную папку файл jndi.properties и пакет client.StuffClient.class Запускаю - ругается ........................ avax.naming.InitialContext.<init>(Initia lContext.java:175) [java] at client.StuffFrame.<init>(StuffClient1.ja va:75) [java] at client.StuffClient1.main(StuffClient1.ja va:33) [java] Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory ......................... Копирую туда файл jnpserver.jar - начинает просить еще один и т.д. То есть он как-то должен загрузить эти файлы через 1099 порт или чего ему не хватает. Может быть где-нить это настраивается на сервере?
0
|
|
|
3 / 3 / 0
Регистрация: 25.08.2010
Сообщений: 213
|
|
| 03.11.2010, 13:04 | |
|
Не путай теплое и мягкое.
Если твоему клиенту надо какие-то классы которые он использует локально - то естественно они нужны. А бизнес логику, которая крутится на сервере можно бесболезненно отделить, достаточно просто указать ай-пи того компа на котором запущен JBoss вместо локалхоста.
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 03.11.2010, 13:21 [ТС] | |
|
Ясненько.
Скопировал я в папку клиента файлы jboss-common.jar и jnpserver.jar. Теперь он просит stuff.StuffHome - дом интерфейс бина. Так что, домашний интерфейс и удаленный надо тоже копировать на клиентскую машину? Извиняюсь, если вопрос глупый
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 03.11.2010, 13:26 [ТС] | |
|
и пишет все время
<no security manager: RMI class loader disabled> ???
0
|
|
|
3 / 3 / 0
Регистрация: 25.08.2010
Сообщений: 213
|
|
| 03.11.2010, 16:19 | |
|
Да. В смысле надо интерфейсы тоже копировать.
А жары целиком тебе не нужны там тебе потребуется пару классов из них. А насчет секьюрити менеджера - не знаю точно. Посмотри в настройках сервера.
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 04.11.2010, 15:59 [ТС] | |
|
Спасибо.
Вроде все работает. Но возникли какие-то непонятки. Во-первых, пишу в jbosscmp-jdbc.xml <datasource>java:jdbc/oraPool</datasource> <datasource-mapping>Oracle8</datasource-mapping> <create-table>true</create-table> <remove-table>true</remove-table> ......................... но при удалении jar из deploy таблицы не удаляются. И во-вторых, когда перекомпиливая только клиента отдельно и запускаю его, он уже не может инициализировать бин с теми значениями, что сохранены в базе были до этого.То есть я делаю xxxHome.create(1); и xxxHome.findByPrimaryKey(1); возвращает данные. После перекомпиляции клиента только - xxxHome.findByPrimaryKey(1); не дает вообще никакой реакции, хотя в базе он есть. Даже в логи не пишет ничего. Пока не стал запускать в отдельном потоке, еще и Swing весь зависал (в смысле клиент). А нове записи создает и возвращает. Где искать решение?
0
|
|
|
3 / 3 / 0
Регистрация: 25.08.2010
Сообщений: 213
|
|
| 04.11.2010, 16:17 | |
|
У меня такое чувство что все дело в том что проблема возникает из-зи оптимизации.
Опиши подробнее что ты делаешь (включая стартостанов сервера и тип бина (CMPBMP))
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 04.11.2010, 17:23 [ТС] | |
|
разобраться я хочу именно как работает CMP.
Кстати, насколько он предпочтителтней BMP, я что-то пока не понял! 2 CMP бина - ProgrammerBean и TeamBean c LocalHome и Local интерфейсами и 1 Session бин StuffBean с Remote и Home интерфейсами. Клиент вызывает удаленные методы у Stuff, а тот создает LocalProgrammerHome programmer = (LocalProgrammerHome)PortableRemoteObjec t.narrow(objref,LocalProgrammerHome.clas s); и LocalProgrammer prog = programmerHome.findByPrimaryKey(programm erId); и также Team оба интерфейса. Потом вызывает методы локального и домашнего интерфейса. Отношение между ними - programmer * - team 1. Пишу в jbosscmp-jdbc <jbosscmp-jdbc> <defaults> <datasource>java:jdbc/slolenPool</datasource> <datasource-mapping>Oracle8</datasource-mapping> <create-table>true</create-table> <remove-table>true</remove-table> <!--не действует --> <row-locking>true</row-locking> <pk-constraint>true</pk-constraint> <preferred-relation-mapping>foreign-key</preferred-relation-mapping> </defaults> Запускаю сервер просто JBOSS_HOME/bin/run.bat Останавливаю Ctrl-C ![]() При перекомпиляции клиента он уже не видит записей в таблице, что были созданы до того то есть вызов LocalProgrammer programmer = programmerHome.findByPrimaryKey(programm erId); завешивал вообще даже клиента, пока я эту кнопку в отдельном потоке не сделал. Выводит ERROR [org.jboss.ejb.plugins.LogInterceptor] RuntimeException: java.lang.NullPointerException at org.jboss.ejb.plugins.EntityLockIntercep tor.invoke(EntityLockInterceptor.java:10 6) ..... at stuff.StuffBean.getProgrammer(StuffBean. java:58) (там где он именно делает programmerHome.findByPrimaryKey(programm erId) ![]() Перекомпилирую клиента я отдельно от бинов(если не перекомпилировать, то он видит прошлые записи) таким макаром <target name='compileClient'> <javac srcdir='${src.main}' destdir='${build.classes}' debug='on' optimize='off' deprecation='off'> <classpath refid='base.path'/> <include name='client/' /> </javac> </target> <target name='run-client' depends='compileClient' > <delete dir='${test.dir}'/> <mkdir dir='${test.dir}'/> <copy todir='${test.dir}' > <fileset dir='${build.classes}' > <include name='client/' /> <include name='stuff/' /> <include name='util/' /> <exclude name='**/*Bean.class'/> </fileset> <fileset dir='${dist.dir}'> <include name='jndi.properties' /> </fileset> <fileset dir='${jboss.home}/server/default/lib'> <include name='jnpserver.jar' /> <include name='jboss-j2ee.jar' /> <include name='jboss.jar' /> <include name='jboss-transaction.jar'/> </fileset> <fileset dir='${jboss.home}/lib'> <include name='jboss-common.jar' /> </fileset> </copy> <java classname='client.StuffClient1' fork='yes'> <classpath path='${test.dir}'>
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 04.11.2010, 18:10 [ТС] | |
|
Добавил в ejb-jar.xml
<assembly-descriptor> <container-transaction> <method> <ejb-name>ProgrammerEJB</ejb-name> <method-name>*</method-name> </method> <method> <ejb-name>TeamEJB</ejb-name> <method-name>*</method-name> </method> <trans-attribute>RequiresNew</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> Вроде ничего более не менял. Стало удалять при редеплоее таблицы и после перекомпиляции клиента видит предыдущие записи ! ![]() Из-за чего изменения - непонятно
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 04.11.2010, 18:17 [ТС] | |
|
Теперь при попытке вызвать
Team team = teamHome.findByPrimaryKey(teamName); Set programmers = team.getMembers(); //до сих работает System.out.println('size = ' + programmers.size()); //а это вызывает ERROR [org.jboss.ejb.plugins.LogInterceptor] RuntimeException: java.lang.IllegalStateException: A CMR collection may only be used within the transction in which it was created ????
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 04.11.2010, 18:20 [ТС] | |
|
Теперь при попытке вызвать
Team team = teamHome.findByPrimaryKey(teamName); Set programmers = team.getMembers(); //до сих работает System.out.println('size = ' + programmers.size()); //а это вызывает ERROR [org.jboss.ejb.plugins.LogInterceptor] RuntimeException: java.lang.IllegalStateException: A CMR collection may only be used within the transction in which it was created ????
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 04.11.2010, 18:39 [ТС] | |
|
Поменял в ejb-jar.xml
<assembly-descriptor> ..... <trans-attribute>RequiresNew</trans-attribute> ...... </assembly-descriptor> на Required и теперь CMR набор можно получить
0
|
|
|
3 / 3 / 0
Регистрация: 25.08.2010
Сообщений: 213
|
|
| 05.11.2010, 19:28 | |
|
Разница в том кто следит за целостностью.
То ест ьрпи использовании ЦМП бинов мот сложиться ситуация - как у тебя при некорректной остановке сервера. Дело в том чт осервер хранит часть бинов в памяти - для оптимизации и только в опред условиях скидывает их на диск. А с дескрипторами - я сам не до конца разобрался - все чт обыло по бесплатной доке + кое-что еще - а остальное - дока платная ((((
0
|
|
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
| 07.11.2010, 11:36 [ТС] | |
|
Спасибо.
А ты не работал с апплетами на JBoss. Их тоже в WEB-INF/classes кидать надо. А то у меня странно как-то получается - лежит апплет в пакете applets.WeatherApplet - то есть путь к нему от html страницы, которая его вызывает, WEB-UNF/classes/appletts В html страничке пишу <APPLET CODE='MyApplet.class' > </APPLET> Она прекрасно находит этот класс, хотя он в пакете applet, а я ей это не указал. Более того, даже в пакете applets.a1.a2.a3.a4 она находит этот класс, даже если в коде я не указываю вообще пакет, а на самом деле кидаю в папку WEB-INF/classes/applets/a1/a2/a3/a4. Если в корень рядом с ней кинуть - тоже находит.
0
|
|
| 07.11.2010, 11:36 | |
|
Помогаю со студенческими работами здесь
20
Не получается запустить JBOSS Помогите запустить JBOSS Как запустить Excel на компьютере клиента? Использую для воспроизведения MP3 WindowsMediaPlayer, как запустить на машине клиента? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|