|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 40
|
|
Как запустить клиента на JBoss?28.10.2010, 13:24. Показов 4915. Ответов 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, как запустить на машине клиента? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
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 законам Кирхгофа и. . .
|