Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите начинающему с примерами 
V
    Опции темы
eric13
Дата 29.12.2009, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 3.11.2009
Где: Тольятти

Репутация: нет
Всего: нет



Добрый день!

В Java я не более, чем новичок, но в компании, куда я хотел бы устроиться, получил тестовое задание, которое там считается несложным для нулевого уровня.
Оно заключается в создании Web-приложения с использованием БД, JSP, EJB.
Хотя мне уже кажется, что про несложность они пошутили. Вникаю уже три недели.

Вобщем, я не нашел ни одного подходящего работающего примера, который мог бы взять за основу (классы и связь с БД).
То пропущены какие-то шаги, то есть ошибки, которые не все могу исправить.
Где-то применяется persistance.xml , где-то нет. Где-то пишется    
 
Код
@PersistenceContext
 , где-то    
Код
 @PersistenceContext(unitName="LibraryBean") 
 .
Вот например http://wiki.linuxformat.ru/index.php/LXF99:Java_EE (со слов Второй бин. JPA ) при копировании jar файла в JBoss возникает ошибка:
Код

16:50:08,421 INFO  [JmxKernelAbstraction] creating wrapper delegate for: org.jboss.ejb3.stateless.StatelessContainer
16:50:08,437 INFO  [JmxKernelAbstraction] installing MBean: jboss.j2ee:jar=Ejb3Demo.jar,name=LibraryBean,service=EJB3 wi
th dependencies:
16:50:08,453 INFO  [JmxKernelAbstraction]       persistence.units:unitName=LibraryBean
16:50:08,468 INFO  [EJB3Deployer] Deployed: file:/C:/JBoss4/server/default/deploy/Ejb3Demo.jar
16:50:08,468 ERROR [URLDeploymentScanner] Incomplete Deployment listing:

--- MBeans waiting for other MBeans ---
ObjectName: jboss.j2ee:jar=Ejb3Demo.jar,name=LibraryBean,service=EJB3
  State: NOTYETINSTALLED
  I Depend On:
    persistence.units:unitName=LibraryBean

--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: persistence.units:unitName=LibraryBean
  State: NOTYETINSTALLED
  Depends On Me:
    jboss.j2ee:jar=Ejb3Demo.jar,name=LibraryBean,service=EJB3



Так я буду рад если добрые люди предложат примеры, которые работают, где есть правильные команды компиляции, комментарии.
Может быть есть подходящая документация. Все, что встречалось, было либо поверхностным, либо без примеров и не совсем о том, что искал.

Sorry, если сообщение вышло неформатным, оно первое. 


PM MAIL   Вверх
AntonSaburov
Дата 29.12.2009, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



PM MAIL WWW ICQ   Вверх
eric13
Дата 6.1.2010, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 3.11.2009
Где: Тольятти

Репутация: нет
Всего: нет



Спасибо, пригодится! Сначала хочется поиметь законченный пример на Eclipse.
Сейчас воспроизвожу видеотуториалы с thescreencast.com.
Там есть пример JPA+JSF+EAR приложения. Просто в таблицу customers (id, name) добавляются заказчики и отображается список.
Есть проблемы на финальном этапе (http://www.thescreencast.com/2007/07/how-to-jsf-in-eclipse-europa-part-ii.html , второй мультик). 

Добавление customer'a через веб интерфейс проходит (в базе он появляется), но тут-же, при автоматическом переходе к списку (listCustomers.jsp) получаю ошибку:
Код

javax.faces.FacesException: org.apache.jasper.el.JspELException: /listCustomers.jsp(13,2) '#{customerBean.all}' Error reading 'all' on type com.thescreencast.web.CustomerBean

В самом деле, при написании этого скрипта (и в мультике тоже!) подсвечивались проблемы:
Код

    <h:form>
        <h:dataTable border="1" value="#{customerBean.all}" var="currentCustomer">
            <h:column id="column1">
                <h:outputText value="#{currentCustomer.id}"></h:outputText>
                <f:facet name="header">
                    <h:outputText value="id"></h:outputText>
                </f:facet>
            </h:column>
            <h:column id="column2">
                <h:outputText value="#{currentCustomer.name}"></h:outputText>


После точки в строке 
Код

<h:dataTable border="1" value="#{customerBean

метод all высвечивался, но после #{currentCustomer. (это, как я понимаю, типа переменная цикла по коллекции customerBean) уже ничего не предлагалось, и строка подчеркивалась (id cannot be resolved as a member of currentCustomer).

all - это коллекция из СustomerBean.java - (это класс в JSF проекте):
Код

    public Collection<Customer> getAll(){
        return getCustomerDAO().getAllCustomers();
    }
    
    private CustomerDAO getCustomerDAO(){
        
        CustomerDAO dao=null;
        try {
            InitialContext ctx = getInitialContext();
            dao = (CustomerDAO) ctx.lookup("demoEAR/CustomerDAOBean/remote");
        
        } catch (Exception e){
            //TODO handle errors
        }
        
        return dao;
    }



В JPA проекте код CustomerDAOBean.java:

Код

package com.thescreencast.jpa;

import java.util.Collection;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class CustomerDAOBean implements CustomerDAO {
    
    @PersistenceContext(name="demoJPA")
    private EntityManager entityManager;
    
...
    public Collection<Customer> getAllCustomers() {
        return (Collection<Customer>) entityManager.createQuery(
        "from Customer c").getResultList();
    }
}



И, наконец, интерфейс CustomerDAO.java из JPA:
Код

package com.thescreencast.jpa;

import java.util.Collection;

import javax.ejb.Remote;

@Remote
public interface CustomerDAO {
  public void addCustomer(Customer customer);
  public Customer findCustomerByID(int id);
  public Collection<Customer> getAllCustomers();
}




Посмотрите плиз, кому не лень, - что здесь может быть не так?
PM MAIL   Вверх
eric13
Дата 6.1.2010, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 3.11.2009
Где: Тольятти

Репутация: нет
Всего: нет



Меня смущает аргумент  "from Customer c" из метода
Код

    public Collection<Customer> getAllCustomers() {
        return (Collection<Customer>) entityManager.createQuery(
        "from Customer c").getResultList();
    }

Это такой укороченный SQL в стиле JPA? Или все-же правильно писать "select * ...";?


PM MAIL   Вверх
magicfly
Дата 6.1.2010, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 21.2.2007

Репутация: 1
Всего: 1



Так можно писать. Это язык PQL, родственник HQL
PM MAIL   Вверх
Joss
Дата 7.1.2010, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 19.3.2006

Репутация: нет
Всего: 1



А разве не select c from Customer c?
PM MAIL   Вверх
Temdegon
Дата 8.1.2010, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

Репутация: нет
Всего: 9



Вот этот пример глянь, может он тебе чем-то поможет
PM MAIL   Вверх
eric13
Дата 9.1.2010, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 3.11.2009
Где: Тольятти

Репутация: нет
Всего: нет



Удалил сообщение.

Это сообщение отредактировал(а) eric13 - 9.1.2010, 14:36
PM MAIL   Вверх
eric13
Дата 9.1.2010, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 3.11.2009
Где: Тольятти

Репутация: нет
Всего: нет



Цитата(Temdegon @ 8.1.2010,  02:20)
Вот этот пример глянь, может он тебе чем-то поможет

Спасибо, поможет.
Пример хороший, но конечно, тоже не работает:
Код

17:03:42,468 ERROR [[TestClient]] Servlet.service() for servlet TestClient threw exception
javax.servlet.ServletException

.

Есть пара вопросов по примеру:
1. JPA в EJB модуле можно никакой не создавать, или эта часть пропущена?
2. Нужно ли в общем случае синхронизировать persistence.xml?




Это сообщение отредактировал(а) eric13 - 9.1.2010, 16:26
PM MAIL   Вверх
Temdegon
Дата 10.1.2010, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

Репутация: нет
Всего: 9



Ну я тот пример как-то запускал. 
Там в web.xml очепятка:

Код

<?xml version="1.0"encoding="UTF-8"?>
<web-appversion= "2.5" xmlns:xsi="http:


а надо 
Код

<?xml version="1.0"encoding="UTF-8"?>
<web-app version= "2.5" xmlns:xsi="http:



PM MAIL   Вверх
eric13
Дата 20.1.2010, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 3.11.2009
Где: Тольятти

Репутация: нет
Всего: нет



Цитата(AntonSaburov @  29.12.2009,  17:53 Найти цитируемый пост)
Студенческий отдел кадров - разбирайся. 

Разобрался, запустил на Eclipse+Jboss. Спасибо, отличный пример.

Добавлено через 1 минуту и 46 секунд
Цитата(Temdegon @  10.1.2010,  11:40 Найти цитируемый пост)
Ну я тот пример как-то запускал. 

Ага, проблема видно у меня была с версией Jbossa, версия 4.2 не вполне реализовала EJB3.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.