Как позволить JAXB представить булевскую переменную как 0 и 1, не истина и ложь

Избавиться от jersey-multipart-1.18.jar. Это для Джерси 1.x. Добавьте эти два файла

Для Maven вы использовали бы следующую зависимость (вам не нужно явно добавлять зависимость mimepull, так как она ее втягивает).


    org.glassfish.jersey.media
    jersey-media-multipart
    2.17 

Тогда вам необходимо зарегистрировать MultiPartFeature. Если вы используете конфигурацию ResourceConfig, вы можете просто сделать

register(MultiPartFeature.class);

Если вы используете web.xml, то вы можете добавить класс как к сервлету Джерси


    jersey.config.server.provider.classnames
    org.glassfish.jersey.media.multipart.MultiPartFeature

Обратите внимание, что если у вас есть несколько поставщиков, которые вы хотите зарегистрировать, вы можете разграничить каждый класс провайдера запятой или точкой с запятой. Вы не можете использовать этот же param-name дважды. См. Ответ Suarabh

UPDATE

Кроме того, как только вы избавитесь от jersey-multipart-1.18.jar, у вас будут ошибки компиляции отсутствующих импортированных классов. По большей части имена классов все те же, только пакеты были изменены, т. Е.


Помимо

Если вы здесь для другого ModelValidationException, вот некоторые ссылки для информации о других причинах исключение.

25
задан user20298 5 December 2008 в 12:30
поделиться

4 ответа

JAXB обеспечивает, гибкий путь к настраивают Вашу привязку . Просто необходимо записать XML-файл, который укажет, как Вы хотите связать свой XML и типы Java. В Вашем случае Вы могли использовать <javaType> объявление, в котором можно определить parseMethod и printMethod. Эти методы могли быть столь же простыми, как

public boolean myParseBool(String s)
{
    return s.equals("1");
}

public String myPrintBool(boolean b)
{
    return b ? "1" : "0";
}

Там мог бы существовать более легкие пути, возможно, с помощью DatatypeConverter, но я недостаточно знаю об этом предмете для помощи Вам больше!

6
ответ дан Luc Touraille 15 October 2019 в 15:50
поделиться

Я, вероятно, создал бы адаптер типа для преобразования булевской переменной к интервалу существуют [приблизительно 110] примеры в пользовательском руководстве JAXB.

1
ответ дан Guðmundur Bjarni 15 October 2019 в 15:50
поделиться

Можно записать пару синтаксического анализатора/писателей и определить свойство, отображающееся в привязке JAXB XML.

0
ответ дан Dennis C 15 October 2019 в 15:50
поделиться

класс адаптера:

import javax.xml.bind.annotation.adapters.XmlAdapter;

public class BooleanAdapter extends XmlAdapter<Integer, Boolean>
{
    @Override
    public Boolean unmarshal( Integer s )
    {
        return s == null ? null : s == 1;
    }

    @Override
    public Integer marshal( Boolean c )
    {
        return c == null ? null : c ? 1 : 0;
    }
}

Использование:

@XmlElement( name = "enabled" )
@XmlJavaTypeAdapter( BooleanAdapter.class )
public Boolean getEnabled()
{
    return enabled;
}
40
ответ дан 28 November 2019 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: