Пакет ggplot2
требует немного обучения, но результаты выглядят очень хорошо, вы получаете приятные легенды, а также множество других приятных функций, без необходимости писать много кода.
require(ggplot2)
require(reshape2)
df <- data.frame(time = 1:10,
a = cumsum(rnorm(10)),
b = cumsum(rnorm(10)),
c = cumsum(rnorm(10)))
df <- melt(df , id.vars = 'time', variable.name = 'series')
# plot on same grid, each series colored differently --
# good if the series have same scale
ggplot(df, aes(time,value)) + geom_line(aes(colour = series))
# or plot on different plots
ggplot(df, aes(time,value)) + geom_line() + facet_grid(series ~ .)
[/g0] [/g1]
Избавиться от jersey-multipart-1.18.jar
. Это для Джерси 1.x. Добавьте эти два файла
Для Maven вы использовали бы следующую зависимость (вам не нужно явно добавлять зависимость mimepull
, так как она ее втягивает).
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.17</version> <!-- Make sure the Jersey version matches
the one you are currently using -->
</dependency>
Тогда вам необходимо зарегистрировать MultiPartFeature
. Если вы используете конфигурацию ResourceConfig
, вы можете просто сделать
register(MultiPartFeature.class);
Если вы используете web.xml, то вы можете добавить класс как <init-param>
к сервлету Джерси
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
</init-param>
Обратите внимание, что если у вас есть несколько поставщиков, которые вы хотите зарегистрировать, вы можете разграничить каждый класс провайдера запятой или точкой с запятой. Вы не можете использовать этот же param-name
дважды. См. Ответ Suarabh
UPDATE
Кроме того, как только вы избавитесь от jersey-multipart-1.18.jar
, у вас будут ошибки компиляции отсутствующих импортированных классов. По большей части имена классов все те же, только пакеты были изменены, т. Е.
org.glassfish.jersey.media.multipart.FormDataParam
org.glassfish.jersey.media.multipart.FormDataContentDisposition
Если вы здесь для другого ModelValidationException
, вот некоторые ссылки для информации о других причинах исключение.
Если кто-то использует @FormDataParam
с аннотацией @ApiOperation
swagger, он не будет работать (в соответствии с последней версией swagger в это время), как указано здесь:
У меня тоже было такое же исключение. Я сделал следующие изменения в файле web.xml
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.moxy.json.MoxyFeature;org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
</init-param>
и изменил трикотаж с 2,7 до 2,9. Я не знаю, какое изменение этого 2 решило проблему.