powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Добавление записи
11 сообщений из 11, страница 1 из 1
Добавление записи
    #39501208
Norman94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Пытаюсь добавить запись в БД, используя JSF и сервер GlassFish

Класс-сущность

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
package models;

import java.io.Serializable;
import javax.persistence.*;

@Entity
@Table(name="user")
@NamedQuery(name="User.findAll", query="SELECT u FROM User u")
public class User implements Serializable  {
    
    @Id
    @Column(name="id")
    public int id;
    
    @Column(name="FIO")
    public String FIO;
    
    @Column(name="position")
    public String position;
    
    @Column(name="date_of_bird")
    public String dateOfBird;
    
    @Column(name="date_of_begining")
    public String dateOfBegining;
     
    @Column(name="login")
    public String login;
    
    @Column(name="password")
    public String password;
    
    public User()
    {}

    public int getId() {
        return id;
    }

    public String getFIO() {
        return FIO;
    }

    public String getPosition() {
        return position;
    }

    public String getDateOfBird() {
        return dateOfBird;
    }

    public String getDateOfBegining() {
        return dateOfBegining;
    }
    
    public String getLogin() {
        return login;
    }

    public String getPassword() {
        return password;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setFIO(String FIO) {
        this.FIO = FIO;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public void setDateOfBird(String dateOfBird) {
        this.dateOfBird = dateOfBird;
    }

    public void setDateOfBegining(String dateOfBegining) {
        this.dateOfBegining = dateOfBegining;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}



Класс-менеджер

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
package managers;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.persistence.EntityManager;
import javax.persistence.Persistence;
import javax.persistence.PersistenceUnit;
import javax.persistence.TypedQuery;

import models.User;

public class UserManager {
    
    public EntityManager em = Persistence.createEntityManagerFactory("Cars").createEntityManager();
    
    public UserManager()
    { }
    
    public User add(User user)
    {
        em.getTransaction().begin();
        User drs = em.merge(user);
        em.getTransaction().commit();
        return drs;
    }
    
    public void delete(int id)
    {
        em.getTransaction().begin();
        em.remove(get(id));
        em.getTransaction().commit();
    }
    
    public User get (int id)
    {
        return em.find(User.class, id);
    }
    
    public void update(User user)
    {
        em.getTransaction().begin();
        em.merge(user);
        em.getTransaction().commit();
    }
    
    public List<User> getAll()
    {
        TypedQuery<User> namedQuery = em.createNamedQuery("User.findAll", User.class);
        return namedQuery.getResultList();
    }
}



Бизнес-логика

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
package main;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;


import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;

import models.User;
import managers.UserManager;
import models.Drivers;
import managers.DriversManager;

@ManagedBean (name="Main") 
@SessionScoped             
public class MainBean {
    
    public User user;
    public UserManager usManager;
    public Drivers driver;
    public DriversManager dm;
    
    public String login;
    public String password;

    public List<User> users;
    public List<Drivers> drivers;
    
    public int selectedId;
    public String selectedFIO;
    public String selectedPosition;
    public String selectedDateBirth;
    public String selectedDateBegin;
    public String selectedlogin;
    public String selectedPassword;
    
    public MainBean()
    {
        getDriv();
    }

    public int getSelectedId() {
        return selectedId;
    }

    public String getSelectedFIO() {
        return selectedFIO;
    }

    public String getSelectedPosition() {
        return selectedPosition;
    }

    public String getSelectedDateBirth() {
        return selectedDateBirth;
    }

    public String getSelectedDateBegin() {
        return selectedDateBegin;
    }

    public String getSelectedlogin() {
        return selectedlogin;
    }

    public String getSelectedPassword() {
        return selectedPassword;
    }

    public void setSelectedId(int selectedId) {
        this.selectedId = selectedId;
    }

    public void setSelectedFIO(String selectedFIO) {
        this.selectedFIO = selectedFIO;
    }

    public void setSelectedPosition(String selectedPosition) {
        this.selectedPosition = selectedPosition;
    }

    public void setSelectedDateBirth(String selectedDateBirth) {
        this.selectedDateBirth = selectedDateBirth;
    }

    public void setSelectedDateBegin(String selectedDateBegin) {
        this.selectedDateBegin = selectedDateBegin;
    }

    public void setSelectedlogin(String selectedlogin) {
        this.selectedlogin = selectedlogin;
    }

    public void setSelectedPassword(String selectedPassword) {
        this.selectedPassword = selectedPassword;
    }

    public List<User> getUsers() {
        return users;
    }
    
    public User getUser() {
        return user;
    }

    public String getLogin() {
        return login;
    }

    public String getPassword() {
        return password;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public void setUsManager(UserManager usManager) {
        this.usManager = usManager;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    
    public UserManager getUsManager() {
        return usManager;
    }
    
    public String addUsers()
    {
        user = new User();
        user.setFIO(selectedFIO);
        user.setPosition(selectedPosition);
        user.setDateOfBird(selectedDateBirth);
        user.setDateOfBegining(selectedDateBegin);
        user.setLogin(selectedlogin);
        user.setPassword(selectedPassword);
        usManager.add(user);
        return "index.xhtml";
    }
}



Страница

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">
     
 <h:head>
     <title>Страница регистрации пользователей</title>
 </h:head>
 <f:view>
 <h:body>
    <h:form>
        <h:panelGrid columns="2" border="0">
            <h:outputText value="Введите ФИО"/>
            <h:inputText value="#{Main.selectedFIO}" />
            <h:outputText value="Введите должность"/>
            <h:inputText value="#{Main.selectedPosition}"/>
            <h:outputText value="Введите Дату рождения"/>
            <h:inputText value="#{Main.selectedDateBirth}"/>
            <h:outputText value="Введите Дату поступления на работу"/>
            <h:inputText value="#{Main.selectedDateBegin}"/>
            <h:outputText value="Введите login"/>
            <h:inputText value="#{Main.selectedlogin}"/>
            <h:outputText value="Введите password"/>
            <h:inputText value="#{Main.selectedPassword}"/>
        </h:panelGrid>   
        <h:commandButton value="Зарегестрировать" action="#{Main.addUsers}" />
    </h:form>
</h:body>
</f:view>
    </html>



Но выпадает ошибка

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
FATAL:   JSF1073: javax.faces.FacesException caught during processing of INVOKE_APPLICATION 5 : UIComponent-ClientId=, Message=#{Main.addUsers}: java.lang.NullPointerException
FATAL:   #{Main.addUsers}: java.lang.NullPointerException
javax.faces.FacesException: #{Main.addUsers}: java.lang.NullPointerException
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:89)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
	at java.lang.Thread.run(Thread.java:748)
Caused by: javax.faces.FacesException: #{Main.addUsers}: java.lang.NullPointerException
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	... 31 more
Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	... 35 more
Caused by: java.lang.NullPointerException
	at main.MainBean.addUsers(MainBean.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.sun.el.parser.AstValue.invoke(AstValue.java:289)
	at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	... 36 more



Помогите понять, почему так происходит?
...
Рейтинг: 0 / 0
Добавление записи
    #39501215
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Norman94
Код: plaintext
1.
Caused by: java.lang.NullPointerException
	at  main.MainBean.addUsers(MainBean.java:179 )
Помогите понять, почему так происходит?Потому, что кто-то не инициализирует обязательные поля?
...
Рейтинг: 0 / 0
Добавление записи
    #39501218
Norman94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

Но я их инициализирую в MainBean
...
Рейтинг: 0 / 0
Добавление записи
    #39501219
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чет не догоняю, а каким образом инъектится UserManager ?
...
Рейтинг: 0 / 0
Добавление записи
    #39501221
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovNorman94
Код: plaintext
1.
Caused by: java.lang.NullPointerException
	at  main.MainBean.addUsers(MainBean.java:179 )
Помогите понять, почему так происходит?Потому, что кто-то не инициализирует обязательные поля?
Он их не затрагивает в приведенном коде, если ты про users и cars.

Код: java
1.
2.
    @EJB
    public UserManager usManager;




Код: java
1.
2.
@Stateless
UserManager 
...
Рейтинг: 0 / 0
Добавление записи
    #39501222
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее даже так:

Код: java
1.
2.
    @EJB
    private UserManager usManager;



второе более подбронее:

Код: java
1.
2.
@Stateless
class UserManager ....
...
Рейтинг: 0 / 0
Добавление записи
    #39501229
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и транзакции в таком случае будут декларативно управляться.
...
Рейтинг: 0 / 0
Добавление записи
    #39501279
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettОн их не затрагивает в приведенном коде, если ты про users и cars.Я про то, что в процитированном куске MainBean.java - 155 строк, поэтому автору лучше видно, почему в 179-й строке появляется null-значение.
...
Рейтинг: 0 / 0
Добавление записи
    #39501281
Norman94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

Я сократил ненужное (хотя я говнокодер)

Он ссылается на эту строку

usManager.add(user);
...
Рейтинг: 0 / 0
Добавление записи
    #39501285
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Norman94,

ну вам уже ответ дали, не проинициализирован у вас usManager.
пример того, как это сделать я привел выше.
...
Рейтинг: 0 / 0
Добавление записи
    #39501297
Norman94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett,

Господи, какая тупая ошибка(
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Добавление записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]