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

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

28.10.2010, 13:24. Показов 4915. Ответов 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
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru