由于旧的项目决策,我在使用Jersey连接到返回XML数据的服务的项目上工作。有时我可以创建bean / pojo /用CREATE TABLE `articles_categorys` (
`category_id` int(11) NOT NULL,
`category_name` varchar(32) COLLATE utf8_bin NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `article_category_reference` (
`ref_id` int(11) NOT NULL,
`article_id` int(11) NOT NULL,
`category_id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `articles_categorys` (`category_id`, `category_name`) VALUES
(22, 'Site Info'),
(1, 'Editorial'),
(2, 'Review'),
(3, 'Interview'),
(4, 'Game Sale'),
(5, 'Steam'),
(6, 'Indie Game'),
(7, 'Crowdfunding'),
(8, 'Game Bundle'),
(9, 'Free Game'),
(10, 'MMO');
INSERT INTO `article_category_reference` (`ref_id`, `article_id`, `category_id`) VALUES
(15, 6231, 22),
(14, 6231, 1),
(16, 6231, 2),
(17, 6231, 3),
(18, 6231, 4),
(19, 6231, 9),
(20, 6231, 10);
注释的任何内容并使用XmlRootElement
但是,如果我尝试做我会做的事情,比如杰克逊,那么webTarget.get(MyPojo.class)
我会收到以下错误:
webTarget.get(Map.class)
我的情况是,我有一个可以有任意字段的XML,所以我阅读它的理想方法是阅读Map。有什么方法可以做到这一点,而不必依赖其他图书馆?我不需要序列化数据,只反序列化我连接的Web服务的响应。
答案 0 :(得分:0)
找到答案,这有点令人沮丧。
根据Unofficial JAXB Guide,你不能使用Map
作为根元素,除非你做了一个非常难看的黑客,在那里描述。所以,解决方案是:
String
身份阅读,并使用杰克逊从字符串中读取Map
。Map
。