Всем доброго времени суток!
Внезапно возникла проблема. Создаю куки и пытаюсь в него положить либо xml (сгенерированный jaxb), либо сериализованный класс. И в том и в другом случае время жизни куки принудительно выставляется “завершение сеанса браузера”. Если передать значение любого аттрибута передаваемого класса (ну или любой String), то время жизни выставляется как надо. Вот код:
вот так не работает:
try {
JAXBContext context = JAXBContext.newInstance(TEModel.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.setProperty(Marshaller.JAXB_ENCODING, "Windows-1251");
outputStream = new ByteArrayOutputStream();
m.marshal(teModel, outputStream);
System.out.println(outputStream.toString());
String str = outputStream.toString();
Cookie cookie = new Cookie("asptem", str);
cookie.setMaxAge(3600*24*365); // One year
response.addCookie(cookie);
} catch (JAXBException ex) {
System.err.println(ex.getMessage());
}
а так все работает корректно:
try {
JAXBContext context = JAXBContext.newInstance(TEModel.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.setProperty(Marshaller.JAXB_ENCODING, "Windows-1251");
outputStream = new ByteArrayOutputStream();
m.marshal(teModel, outputStream);
System.out.println(outputStream.toString());
String str = teModel.getStyle(); //возвращает значение типа String
Cookie cookie = new Cookie("asptem", str);
cookie.setMaxAge(3600*24*365); // One year
response.addCookie(cookie);
} catch (JAXBException ex) {
System.err.println(ex.getMessage());
}
подскажите, что делаю не так?