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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Tomcat+EclipseLink, howto 
:(
    Опции темы
Atum
Дата 22.11.2012, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



добрый день ! 
возник такой вот вопрос - как заставить работать связку 

Tomcat + EclipseLink (ORM) ?   без спринга ! Помогите разобраться !

ошибка в сервлете при вызове 

 em = emf.createEntityManager(); - emf = null ! 

не видит Tomcat что есть PersistenceUnit



что есть : 

 tomcat - servlet - model bean - mysql 

Entity  созданный по таблице :

Код


@Entity
@Table(name = "USER", catalog = "db", schema = "")
@XmlRootElement
@NamedQueries({....})
public class User implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id", nullable = false)
    private Integer id;
....

get 
set 
}




сервлет 

Код


WebServlet(name = "ListPersonServlet", urlPatterns = {"/ListPersonServlet"})
public class ListPersonServlet extends HttpServlet {

   @PersistenceUnit(unitName="WebPU" , name="persistence/em")
    private EntityManagerFactory emf;

....

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {


....
 EntityManager em = null;
   
    try {
        
        
        List persons = Collections.EMPTY_LIST;
        em = emf.createEntityManager();
         persons =  em.createNamedQuery("SELECT t FROM User t").getResultList();

....




в em = emf.createEntityManager(); - emf = null ! 


persistence  


Код


<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="WebPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>model.User</class>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/db"/>
      <property name="javax.persistence.jdbc.password" value="123456"/>
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
      <property name="javax.persistence.jdbc.user" value="root"/>
      <property name="eclipselink.session.customizer" value="util.EclipseLinkSessionCustomizer" />
    </properties>
  </persistence-unit>
</persistence>



EclipseLinkSessionCustomizer 

Код


import org.eclipse.persistence.config.SessionCustomizer;
import org.eclipse.persistence.sessions.JNDIConnector;
import org.eclipse.persistence.sessions.Session;


public class EclipseLinkSessionCustomizer implements SessionCustomizer{

    @Override
    public void customize(Session session) throws Exception {
      JNDIConnector connector = (JNDIConnector) session.getLogin().getConnector();
      connector.setLookupType(JNDIConnector.STRING_LOOKUP);
    }
    
}



PM MAIL   Вверх
Vasay
Дата 26.11.2012, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

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



Atum

А если попробовать получить EntityManagerFactory без аннотаций:

EntityManagerFactory emf = javax.persistence.Persistence.createEntityManagerFactory("WebPU");

Что будет? 

Это сообщение отредактировал(а) Vasay - 26.11.2012, 16:40


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
xalez
Дата 27.11.2012, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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


 




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


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

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