Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
3 / 3 / 0
Регистрация: 05.05.2012
Сообщений: 20

SOAP и NULL

11.09.2012, 07:03. Показов 2656. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, собственно такой вопрос:
Как вернуть в веб методе поле со значением null?
То есть у меня есть класс на основе таблицы из бд, я создаю list из данного класса, но при возврате листа в веб методе, в сообщении будут отображены только поля значение которых не равно null.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.09.2012, 07:03
Ответы с готовыми решениями:

SOAP и set_time_limit - Как работать с настройкой вообще и вместе с SOAP в частности
Не могу понять как работать с настройкой вообще и вместе с SOAP в частности. Есть код: <?php $start = microtime(true); ...

Формирование soap-запроса через SOAP::WSDL
Прошу помочь решить следующую проблему. Необходимо сформировать SOAP-запрос на веб-сервис. Требуемая структура xml-сообщения следующая: ...

Блин, для ЧЕГО НУЖНА Функция CREATE TABLE invoice( inv_id INT AUTO_INCREMENT NOT NULL , usr_id INT NOT NULL , prod_id INT NOT NULL , quantity INT NOT
Погуглив, так и не смог толком понять. Есть тут ГУРУ по mysql Которые могут на пальцах или на примере показать для чего она нужна. ...

8
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
11.09.2012, 12:33
где код?
0
3 / 3 / 0
Регистрация: 05.05.2012
Сообщений: 20
12.09.2012, 04:30  [ТС]
Вчера не на работе уже был, не смог ответить.
вот класс:
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tables;
 
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;
import java.util.Collection;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
 
/**
 *
 * @author root
 */
@Entity
@Table(name = "users", catalog = "otava", schema = "public")
@XmlRootElement
public class Users implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
  @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "user_id")
    private Integer userId;
    @Column(name = "group_id")
    private BigInteger groupId;
    @Column(name = "category_id")
    private BigInteger categoryId;
    @Basic(optional = false)
    @Column(name = "create_date")
    //@Temporal(TemporalType.TIMESTAMP)
    private String createDate;
    @Basic(optional = false)
    @NotNull
    @Column(name = "ls", nullable = false)
    private long ls;
    @Size(max = 16)
    @Column(name = "ustr", length = 16)
    private String ustr;
    @Size(max = 16)
    @Column(name = "fio", length = 16)
    private String fio;
    @Size(max = 256)
    @Column(name = "description", length = 256)
    private String description;
    @Basic(optional = false)
    @NotNull
    @Column(name = "locked", nullable = false)
    private boolean locked;
    @Column(name = "lock_date")
    @Temporal(TemporalType.TIMESTAMP)
    private Date lockDate;
    @OneToMany(mappedBy = "userId")
    private Collection<Logins> loginsCollection;
 
    public Users() {
    }
 
    public Users(Integer userId) {
        this.userId = userId;
    }
 
    public Users(Integer userId, String createDate, long ls, boolean locked) {
        this.userId = userId;
        this.createDate = createDate;
        this.ls = ls;
        this.locked = locked;
    }
 
    public Integer getUserId() {
        return userId;
    }
 
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
 
    public BigInteger getGroupId() {
        return groupId;
    }
 
    public void setGroupId(BigInteger groupId) {
        this.groupId = groupId;
    }
 
    public BigInteger getCategoryId() {
        return categoryId;
    }
 
    public void setCategoryId(BigInteger categoryId) {
        this.categoryId = categoryId;
    }
 
    public String getCreateDate() {
        return createDate;
    }
 
    public void setCreateDate(String createDate) {
        this.createDate = createDate;
    }
 
    public long getLs() {
        return ls;
    }
 
    public void setLs(long ls) {
        this.ls = ls;
    }
 
    public String getUstr() {
        return ustr;
    }
 
    public void setUstr(String ustr) {
        this.ustr = ustr;
    }
 
    public String getFio() {
        return fio;
    }
 
    public void setFio(String fio) {
        this.fio = fio;
    }
 
    public String getDescription() {
        return description;
    }
 
    public void setDescription(String description) {
        this.description = description;
    }
 
    public boolean getLocked() {
        return locked;
    }
 
    public void setLocked(boolean locked) {
        this.locked = locked;
    }
 
    public Date getLockDate() {
        return lockDate;
    }
 
    public void setLockDate(Date lockDate) {
        this.lockDate = lockDate;
    }
 
    @XmlTransient
    public Collection<Logins> getLoginsCollection() {
        return loginsCollection;
    }
 
    public void setLoginsCollection(Collection<Logins> loginsCollection) {
        this.loginsCollection = loginsCollection;
    }
 
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (userId != null ? userId.hashCode() : 0);
        return hash;
    }
 
    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Users)) {
            return false;
        }
        Users other = (Users) object;
        if ((this.userId == null && other.userId != null) || (this.userId != null && !this.userId.equals(other.userId))) {
            return false;
        }
        return true;
    }
 
    @Override
    public String toString() {
        return "tables.Users[ userId=" + userId + " ]";
    }
    
}
А вот как вывожу данные:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 /**
     * Операция веб-службы
     */
    @WebMethod(operationName = "GetAllUser_XML")
    public List<Users> GetAllUser_XML() throws Exception {
        Session ses = NewHibernateUtil.getSessionFactory().getCurrentSession();
        List<Users> ww = new ArrayList<Users>();
 
        try {
            ses.beginTransaction();
            ww = ses.createCriteria(Users.class).list();
            return ww;
        } catch (Exception ex) {
            throw ex;
        } finally {
            ses.close();
        }
    }
Добавлено через 1 час 1 минуту
можно конечно в каждом кассе прописать еще @XmlAccessorType(XmlAccessType.NONE)
и для каждого атрибута @XmlElement(nillable=true), но по моему это более чем криво.
0
7 / 2 / 0
Регистрация: 02.08.2012
Сообщений: 17
17.09.2012, 12:13
Хм ЕМНИП, то переменные со значением null просто не маршализуются. А при унмаршалинге автоматически на место отсутствующих элементов подставляется null.
0
3 / 3 / 0
Регистрация: 05.05.2012
Сообщений: 20
17.09.2012, 12:24  [ТС]
а можно чуть подробней какую анотацию поставить?
0
 Аватар для kmi
55 / 55 / 14
Регистрация: 26.04.2010
Сообщений: 177
19.09.2012, 12:20
Sworfly прав. В конверте null-значения либо отсутствуют, либо имеют атрибут nil="true". Смысл одинаков. Атрибут nil объявлен в пространстве имён http://www.3w.org/2001/XMLSchema-Instance.

Собственно, зачем Вам явно указывать null?
1
3 / 3 / 0
Регистрация: 05.05.2012
Сообщений: 20
19.09.2012, 13:06  [ТС]
да вот не умеют те кто пишет клиент обрабатывать отсутствующее значение( и договориться не получилось.
0
 Аватар для kmi
55 / 55 / 14
Регистрация: 26.04.2010
Сообщений: 177
19.09.2012, 16:55

Не по теме:

Т.е. эти "писатели" решили, что, раз они не могут обработать стандартный протокол SOAP (http://www.w3.org/TR/soap12-part1/), то Вы должны этот протокол переписать? Тяжёлый случай... ]:->



Ставьте xsi:nil="true" для соответствующего элемента. Это единственный способ явно указать отсутствие значения для клиента.

Если контрагент начнёт гнуть, покажите стандарт. Иногда помогает, хотя, увы, не всегда...
1
3 / 3 / 0
Регистрация: 05.05.2012
Сообщений: 20
19.09.2012, 17:21  [ТС]
ну так щас и делаю, просто коряво это. ладно. спасибо всем кто помогал решить проблему))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.09.2012, 17:21
Помогаю со студенческими работами здесь

UPDATE SELECT, ERROR: null value in column violates not-null constraint
Здравствуйте. Две таблицы, из одной значением integer модифицируется int другой таблицы. В таблице-приёмнике ограничение NOT NULL. ...

Не работает код: m_web1.Navigate ('gidro.htm',0,0,NULL,NULL);
Друзья помогите начинаюшему значит делаю m_web1.Navigate ('с:\gidro.htm',0,0,NULL,NULL);работает делаю m_web1.Navigate...

XML. Как мне добится того, чтоб в списке было 1, NULL, NULL, 4?
Есть следующий кусочек XML файла: &lt;root&gt; &lt;row&gt; &lt;cell&gt;&lt;data&gt;1&lt;/data&gt;&lt;/cell&gt; &lt;cell&gt;&lt;data&gt;2&lt;/data&gt;&lt;/cell&gt; ...

Сервер отправляет объект не null, а клиент принимает null
Помогите пожалуйста! У меня в клиент-серверном приложении творится что-то странное! Короче с сервера на клиент посылается задача, но на...

Почему в столбцах NOT NULL по умолчанию NULL ?
Добрых суток! Не могу понять такую вещь. Создаю столбцы и не пишу NOT NULL. В таком случае по умолчанию значения NULL. Но, даже,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru