![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
powerOn |
|
||||||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Как так не видишь??А что ты тогда компилируешь то? Какой состав проекта? В основном компилятор ругается на отсутствие пакетов, например:
говорит, что пакет myshop.workerBean и myshop.workerRemoteHome отсутствует. Я так понимаю, что это интерфейсы твоего EJB - workerBean. Их нужно доключить к проекту - не только импортировать (import myshop.workerBean;), но и чтобы компилятор смог найти эти файлы (myshop/workerBean.class и myshop/workerRemoteHome.class) в папке с твоими исходниками. далее:
Здесь компилятор не может понять, что это за "зверь" такой - Context. Подключи javax.ejb.* - интерфейс Context там объявлен. ну и т.д. |
||||||
|
|||||||
chief39 |
|
||||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 11 Всего: 77 |
Суть такова: Ты разрабатываешь Свой Бин. Это абстрактное понятие, которое включает в себя не только класс реализации, но и дескриптор развёртывания и два интерфейса(Это всё чтоб твой бин подходил под спецификацию и другие могли с ним работать как с EJBином). Итак. ты реализовал Класс. В нём логика, алгоритмы и проч. и проч. Но сам по себе - он всего лишь класс. Теперь из него надо сделать бин. Ведь человек сам по себе ещё не программер. Ему нужен ещё комп, сеть, ПО, неограниченные запасы кофе чтоб он мог функционировать ![]() Теперь ты создаёшь дескриптор в xml, который описывает как этому Бину(я говорю не о классе а о абстрактном собирательном бине вообще) влиться в контейнер(суть Джибосс). Говоришь: "Вот мой бин, называется он так, логика реализована в этом классе, а доступаться к нему можно через этот и этот интерфейсы(ну и проч. и проч.)". Потом ты деплоишь его. Он становится доступен на сервере. Теперь кто-то хочет его использовать. Он должен знать что предоставляет этот Бин и знает что ему нужен именно этот Бин. Для этого есть интерфейс. Клиенту дают интерфейс и говорят: "вот это Бин может делать - пользуй его". Когда тебе нужно переключить телевизор, ты берёшь ИК излучение и проч. физические сочтавляющие мира чтоб твой пульт смог работать(naming и проч. стандартные EJB службы, которые реализованы в классах.). Т.е. пульт должен тоже уметь испускать ИК лучи и кодировать их. Но ведь тебе нужен конкретный телевизор Сони, и работать ты хочешь с Сони. У тебя есть интерефейс, который тебе дали создателя телевизора - суть пульт. Ты берёшь его, и работаешь именно с Сони(именно с твоим Бином). "Родной" пульт знает что и как в ЕГО телевизоре. Вот и ты подключаешь интерфейс Бина на клиенте(Ты ведь не сможешь включить телек, пока не пойдёшь и не возьмёшь пульт и не создашь клиентскую систему "Коля с пультом"). Но тут сделали ещё такой хитрый ход: разделили на два интерфейса - хоум и ремоут. Ремоут предоставляет именно то, что тебе нужно(бизнес логику), а хоум - скорее служебный, для управления бином(создания его экземпляра и проч.) То есть надоедливые, но необходимые "мелочи" по управлению БИНОМ, а не прикладными данными вынесли в хоум. Поэтому клиенту нужны реализованные EJB сервисы в классах(чтоб он вообще мог работать с Jbossom) и конкретный пульт (из двух интерфейсов) + знание где твой сервер и как зарегистрирован этот бин на нём(имя). Вот. После, с помощью EJB серисов находишь этот сервер и получаешь объект по имени(реально это реализация хоум интерфейса). Ну мы-то уже знаем, что это наш пульт, вот и интерфейсик от него валяется. Хоум. ХОП! И преобразовали! Ну а теперь через нашу рабочую лошадку "хоум" создаём бин на сервере и получаем ссылку на него. Есссно, в виде ремоут интерфейса - он ведь у нас тоже есть. Хм... Вот у нас ремоут интерфейс ,который ссылается на Бин(который лежит на сервере). У нас на руках все бизнес методы, вот мы и шуруем как обычным объектом. Ну разве что понадобится что-то системное с бином сделать - для этого у нас хоум ещё валяется ![]() Насчёт odbc - зачем? Получится связка - бин-jdbc-odbc-база. Лучше бин-jdbc-база. В папке деплой создаёшь mysql-ds.xml (уточни у мускульщиков), в жибоссе образец ds есть для hsql-db. Описание датасорсов - там. А драйвер под конкретную базу - это джарик с классами, которые реализуют доступ к конкретной базе. Он желателен в либах джибосса. То есть в класспасе ![]() Например. В /server/default/lib лежит ojdbc14.jar - это дрова к ораклу. В /server/deploy/oracle-ds.xml шось такое:
Это датасорс. Аналогично датасорсу в ОДБЦ. Тут тебе и местонахождение сервера ДБ и класс драйвера и пароль/логин и опциональные хреновины. По мусклю - нужен джарик с драйвером и уточнения мускулистов. Это сообщение отредактировал(а) chief39 - 20.2.2006, 12:48 -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
||||
|
|||||
zone51 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 17.2.2006 Репутация: нет Всего: 1 |
Вот спасибо! только я не пойму зачем тогда прописка ьускулистых дров в консоле виндовоза ODBC источники данных.Разве это никак нельзя использовать? И самый главный вопрос..хотя это надо к мускулистам так это вид строки подключения вернее загрузки дров..Попробую разобрацца..а сли не трудно, как подрубать свои классы компонента в проект чтоб их видно было? мот в папку какую? спасибо.
![]() ![]() ![]() -------------------- The truth is out there |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
[quote]
как подрубать свои классы компонента в проект чтоб их видно было? мот в папку какую? [/quote Обычно их кладут в папку с исхониками (src) твоего проекта. Или в папке, имя которой прописано в Manifest - е в ключе Class-path. И не забывай что если класс лежит в каком - то пакете, то он должен находиться в папке с именем этого пакета. напримр класс org.apache.jsp.test_jsp дожен располагаться в след. структуре каталогов: org/apache/jsp/test_jsp.class |
|||
|
||||
zone51 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 17.2.2006 Репутация: нет Всего: 1 |
Ну общими усилиями проблему с классами я решил используя простое перетаскивание пакетов в дереве нетбинса(структуре папок проекта).На это терь не ругаецца. Я с удивлением обнаружил что моя книга по ежб 2002-го года, и поэтому этот пример
<% Context cont=new InitialContext(); Object obj=cont.lookup("test1"); workerHome work=(workerHome)PortableRemoteObject.narrow(obj,workerHome.class); work.create(); workerRemote remot=obj.findByPrimaryKey(); String out=remot.gettest(); %> Ваще не пашет. Я проверял.у меня в javax.ejb интерфейса Context нету, есть EJBContext и еще пару но они все абстрактные и как с ними работать непонятно. ЩЗаодно не подскажите современные способы законектицца хотя бы с ежб компонентой. Огромное спасибо. -------------------- The truth is out there |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Странно, А класс InitialContext есть? Это сообщение отредактировал(а) MoonCat - 20.2.2006, 16:47 |
|||
|
||||
zone51 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 17.2.2006 Репутация: нет Всего: 1 |
неа, нема его вааще...гляди:
![]() и во ![]() ![]() ![]() ![]() -------------------- The truth is out there |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Стооооооооооп! А в javax.naming???
Добавлено @ 17:14 Я напарил! Он именно в javax.naming!!!!!!!!!! ![]() Это сообщение отредактировал(а) MoonCat - 20.2.2006, 17:13 |
|||
|
||||
zone51 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 17.2.2006 Репутация: нет Всего: 1 |
угу..спасибо преогромное..есть..тока терь во така ботва:
Compiling 1 source file to C:\shop\test\test-war\build\generated\classes C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:67: cannot find symbol symbol : variable PortableRemoteObject location: class org.apache.jsp.index_jsp myejbRemoteHome work=(myejbRemoteHome)PortableRemoteObject.narrow(obj,myejbRemoteHome.class); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:68: create(java.lang.Long) in mypackage.myejbRemoteHome cannot be applied to () work.create(); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:69: cannot find symbol symbol : method findByPrimaryKey() location: class java.lang.Object myejbRemote remot=obj.findByPrimaryKey(); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:70: out is already defined in _jspService(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) String out=remot.gettest(); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:70: cannot find symbol symbol : method gettest() location: interface mypackage.myejbRemote String out=remot.gettest(); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:72: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write(" \n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:73: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write("\n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:74: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write("\n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:75: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write(" \n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:76: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write(" \n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:77: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write(" </body>\n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:78: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write("</html>\n"); ^ 12 errors C:\shop\test\test-war\nbproject\build-impl.xml:361: The following error occurred while executing this line: C:\shop\test\test-war\nbproject\build-impl.xml:353: The following error occurred while executing this line: C:\shop\test\test-war\nbproject\build-impl.xml:141: Compile failed; see the compiler error output for details. BUILD FAILED (total time: 1 second) по ходу чота не находит опять..ща разбираюсь.. зы. Проблема решилась подключением lavax.rmi.*; но еще не все: Compiling 1 source file to C:\shop\test\test-war\build\generated\classes C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:69: create(java.lang.Long) in mypackage.myejbRemoteHome cannot be applied to () work.create(); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:70: cannot find symbol symbol : method findByPrimaryKey() location: class java.lang.Object myejbRemote remot=obj.findByPrimaryKey(); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:71: out is already defined in _jspService(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) String out=remot.gettest(); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:71: cannot find symbol symbol : method gettest() location: interface mypackage.myejbRemote String out=remot.gettest(); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:73: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write(" \n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:74: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write("\n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:75: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write("\n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:76: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write(" \n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:77: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write(" \n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:78: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write(" </body>\n"); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:79: cannot find symbol symbol : method write(java.lang.String) location: class java.lang.String out.write("</html>\n"); ^ 11 errors C:\shop\test\test-war\nbproject\build-impl.xml:361: The following error occurred while executing this line: C:\shop\test\test-war\nbproject\build-impl.xml:353: The following error occurred while executing this line: C:\shop\test\test-war\nbproject\build-impl.xml:141: Compile failed; see the compiler error output for details. BUILD FAILED (total time: 2 seconds) ![]() ![]() ![]() ![]() Это сообщение отредактировал(а) zone51 - 20.2.2006, 17:38 -------------------- The truth is out there |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Ууух!
Не видит класса PortableRemoteObject. Он в javaх.rmi находится, импортируй его. Что это за книга такая, что примеры так плохо написаны? |
|||
|
||||
zone51 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 17.2.2006 Репутация: нет Всего: 1 |
Н. Смирнов J2EE Проектирование и разработка кацца..
Я его уже импортировал..было 11 ош.а щас заметил грубую ошибку, я назвал свою строку именем out, а это предопределеный обьект жсп, терь во что: Compiling 1 source file to C:\shop\test\test-war\build\generated\classes C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:69: create(java.lang.Long) in mypackage.myejbRemoteHome cannot be applied to () work.create(); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:70: cannot find symbol symbol : method findByPrimaryKey() location: class java.lang.Object myejbRemote remot=obj.findByPrimaryKey(); ^ C:\shop\test\test-war\build\generated\src\org\apache\jsp\index_jsp.java:71: cannot find symbol symbol : method testget() location: interface mypackage.myejbRemote String out1=remot.testget(); ^ 3 errors C:\shop\test\test-war\nbproject\build-impl.xml:361: The following error occurred while executing this line: C:\shop\test\test-war\nbproject\build-impl.xml:353: The following error occurred while executing this line: C:\shop\test\test-war\nbproject\build-impl.xml:141: Compile failed; see the compiler error output for details. BUILD FAILED (total time: 1 second) Что такое findByPrimaryKey() вааще и какие ему параметры нада? А метод create чота с парамеирами тута..странно. Заранее спасибо. -------------------- The truth is out there |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Какой тип объекта obj ? Код в студию для: mypackage.myejbRemoteHome и mypackage.myejbRemote |
|||
|
||||
zone51 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 17.2.2006 Репутация: нет Всего: 1 |
<%
Context cont=new InitialContext(); Object obj=cont.lookup("test1"); myejbRemoteHome work=(myejbRemoteHome)PortableRemoteObject.narrow(obj,myejbRemoteHome.class); work.create(); myejbRemote remot=obj.findByPrimaryKey(); String out1=remot.testget(); %>
Нипонял ![]() ![]() чо за код? -------------------- The truth is out there |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
![]() ![]() В общем, Object obj=cont.lookup("test1"); этой строчкой ты создал объект типа Object. И естественно метода findByPrimaryKey() у него нет. Ты должен привести его к нужному типу, вероятно к этому mypackage.myejbRemote. P.S. Ты уж не принимай близко к сердцу.... Что-то у тебя многова-то ошибок по фундаментальным знаниям Java, рекомендую прочитать пару книжек, это весьма полезно. Некоторые доки есть здесь в FAQ. Ты до того как за J2EE взялся, под J2SE программировал? Если ты только начинающий в Java программер, то рекомендую сначала заняться её основами. |
|||
|
||||
zone51 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 17.2.2006 Репутация: нет Всего: 1 |
блин..да я понял что ява код, просто стормозил, неожиданно как-то
![]() ![]() ![]() гг..я нипонял что значит в студию ![]() ![]() ![]() ------------------------------------------------------ Remote
--------------------------------------------------------------------- RemoteHome
А это myejbBean.java -----------------------------------------------------------------------------------------
в нетбинсах написано что все реализации в последний файл пихать..я сомневался но покорился ![]() ![]() Это сообщение отредактировал(а) Lamer George - 21.2.2006, 13:15 -------------------- The truth is out there |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |