Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40

Как запустить клиента на JBoss?

28.10.2010, 13:24. Показов 4939. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа!
Was been deployed beans in JBoss.
А как собственно запаковать и запустить клиента, чтоб протестировать его?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2010, 13:24
Ответы с готовыми решениями:

Как запустить приложение в JBoss через консоль?
Есть потребность в написании ява-приложения которое при запуске сканит каталожки файловой системы и пишет лог-файл. Я использую...

Кто-нибудь писал IIOP клиента под JBoss?
Кто-нибудь писал IIOP клиента под JBoss? Что-то у меня не получается... (скажу сразу, опыт написания IIOP для SunONE есть) ...

Не могу запустить JBoss
Привет всем! Я вот тут мучаюсь и никак не пойму почему сервак не хочет запускаться......что может быть?? вот скрин:

24
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2010, 11:36
Помогаю со студенческими работами здесь

JAAS JBOSS 7 Авторизация и аутентификация толстого клиента
Появилась такая задача. Есть толстый клиент и JBOSS AS 7. Необходимо логинить пользователей через толстый клиент. Кто знает где...

Не получается запустить JBOSS
Помогите, плизз разобраться, что не так Возникает исключение при деплое на jboss4.0.5: org.jboss.deployment.DeploymentException:...

Помогите запустить JBOSS
Всем добрый день! Подскажите пожалуйста как запустить jboss. На сервере стоит оракл+ява. После перезагрузки сервера перестал открываться...

Как запустить Excel на компьютере клиента?
Здравствуйте! возможен ли subj в принципе? т.е. мне нужно сгенерить скрипт на сервере и передать его клиенту, чтобы этот скрипт на...

Использую для воспроизведения MP3 WindowsMediaPlayer, как запустить на машине клиента?
Использую воспроизведение MP3 с помощью WindowsMediaPlayer. Подключена библиотека WMPLid.dll. Но у половины клиентов приложение вылетает. Я...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Реалии
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
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru