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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SOAP и NULL, Возврат поля со значением null 
:(
    Опции темы
XelMed
  Дата 11.9.2012, 06:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте, собственно такой вопрос:
Как вернуть в веб методе поле со значением null?
То есть у меня есть класс на основе таблицы из бд, я создаю list из данного класса, но при возврате листа в веб методе, в сообщении будут отображены только поля значение которых не равно null. 
PM MAIL   Вверх
AntonSaburov
Дата 11.9.2012, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

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



If a SOAP operation requires an input parameter and if you want to send a NULL value for this parameter, you must set an xsi:nil attribute to "true" in the SOAP request. For example:

Код

<GetCustomerInfo xmlns="http://tempUri.org/" >
  <CustomerID xsi:nil="true" />
  <OutputParam />
</GetCustomerInfo>


Надо посмотреть - по идее JAX-WS должна сама разруливать такие штуки - если параметр равен NULL, он должен сам такое подставить.
PM MAIL WWW ICQ   Вверх
XelMed
Дата 12.9.2012, 02:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ну там просто через анотации все.
вот класс:
Код

/*
 * 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 + " ]";
    }
    
}


А вот как вывожу данные:
Код

 /**
     * Операция веб-службы
     */
    @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();
        }
    }


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


Новичок



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

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



можно конечно в каждом кассе прописать еще @XmlAccessorType(XmlAccessType.NONE)
и для каждого атрибута @XmlElement(nillable=true), но по моему это более чем криво. 
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.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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