Избавиться от 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
, у вас будут ошибки компиляции отсутствующих импортированных классов. По большей части имена классов все те же, только пакеты были изменены, т. Е.
org.glassfish.jersey.media.multipart.FormDataParam
org.glassfish.jersey.media.multipart.FormDataContentDisposition
Если вы здесь для другого ModelValidationException
, вот некоторые ссылки для информации о других причинах исключение.
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, но я недостаточно знаю об этом предмете для помощи Вам больше!
Я, вероятно, создал бы адаптер типа для преобразования булевской переменной к интервалу существуют [приблизительно 110] примеры в пользовательском руководстве JAXB.
Можно записать пару синтаксического анализатора/писателей и определить свойство, отображающееся в привязке JAXB XML.
класс адаптера:
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;
}