Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JAXB“也不知道它的任何超类”请避免@XmlSeeAlso

JAXB“也不知道它的任何超类”请避免@XmlSeeAlso
EN

Stack Overflow用户
提问于 2014-08-20 09:22:05
回答 1查看 17.1K关注 0票数 2

解释与变通

目前,我正在使用JAX,让JAXB绑定在JEE6项目中自动处理将数据转换为XML和JSON的过程。在我尝试创建一个通用的响应对象来包装我所有的信息之前,一切都非常完美。

当我尝试使用我的泛型响应类com.eln00b.Wrapper (其中包含一个private Object result属性)时,我得到:

javax.xml.bind.MarshalException -除了链接的例外: com.sun.istack.SAXException2: class com.eln00b.CustomObject或它的任何超类都是已知的。javax.xml.bind.JAXBException:类com.eln00b.CustomObject和它的任何超类都是已知的。

所以我加入了com.eln00b.Wrapper

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@XmlSeeAlso ({com.eln00b.CustomObject})
public class Wrapper {
}

一切都很好。

问题

我希望这是非常通用的。我不希望经常将类添加到@XmlSeeAlso类的com.eln00b.Wrapper注释中。如何让系统自动定位JAXB上下文的所有类?

即使这是我使用反思之类的东西加载数据的黑客,这也没问题。我只是不知道如何在不使用@XmlSeeAlso注释的情况下获得加载所有这些数据的上下文。有了大量的注释,我将创建它,它将根本无法工作。

它是如何手动工作的

它只是通过添加数据来手动工作,比如手动转换。但是,我不想使用/JSON创建,除非我绝对需要(我不想处理内容协商或类似的事情)。

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JAXBContext.newInstance(new Class[] {Wrapper.class, CustomObject.class});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-22 05:39:37

因此,以下是自定义解析器的本质:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Provider
@Produces ({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public class JaxbContextResolver implements ContextResolver<JAXBContext> {

  @Override
  public JAXBContext getContext(Class<?> type) {
    // load appropriate context data
    Class[] bindTypes = ...

    // create 
    try {
      return JAXBContext.newInstance(bindTypes);
    } catch (JAXBException e) {
      // todo:  this can be handled better but works for the example
      throw new RuntimeException(e);
    }
  }
}

现在,对“加载适当的上下文数据”的处理非常简单。基本上,通过使用运行时数据模拟@XmlSeeAlso

  1. 创建一个自定义的东西(注释、处理方法等),将特定字段/方法标记为“上下文”。
  2. 加载字段/方法数据,提取数据类型
  3. 请确保不加载重复项,并检查无限递归可能性。

现在,我使用了一些缓存来帮助自己提高效率。我还为我的根对象创建了一个稍微复杂一些的设置,它实际上独立地跟踪类数据,并使它非常快速。我还创建了一个将类标记为“上下文”的替代方法,我使用包检查通过注释加载类,并且只是自动添加到上下文中,但我还没有检查效率。我有一些关于第三个实现的想法,但我想让更多的基准完成。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25410831

复制
相关文章
删除SQL数据库表中的重复记录
在n条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复并保留一条呢?方法如下:
学派客
2023/04/07
4.3K0
SQL:删除表中重复的记录
--创建测试表 if object_id('test') is not null drop table test create table test ( id int identity(1,1) primary key, name varchar(50) ) --插入几条测试数据 insert into test select 'a' union all select 'a' union all select 'a' union all select 'a' union all select 'a
用户8983410
2021/11/02
4.8K0
SQL server 数据库基本插入、删除命令
一、实验素材:附加学生信息表(student) 二、实验要求: 1、 查询student表中所有学生的信息 select * from student 2、 查询student表中“姓名”“所在班
L宝宝聊IT
2018/06/20
1K0
从 git 的历史记录中彻底删除文件或文件夹
如果你对外开源的代码中出现了敏感信息(例如你将私钥上传到了仓库中),你可能需要考虑将这个文件从 git 的历史记录中完全删除掉。
walterlv
2023/10/22
8870
SQL Server判断表中是否存在记录的SQL语句
SQL Server数据库判断记录是否存在,要不是语句不够简洁,要不就是性能有很大问题,简直就是忍无可忍!
跟着阿笨一起玩NET
2020/03/18
4.9K0
sql删除重复记录
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
王念博客
2019/07/24
2.2K0
从列表中或数组中随机抽取固定数量的元素组成新的数组或列表
2:jQuery版本 那么jQuery中怎么随机选出固定数组数组[1, 2, 3, 4, 5, 6, 7, 8, 9]中的三个元素,并构造成新数组的?
王小婷
2018/08/02
6K0
sql删除wordpress没用的postmeta记录
支持多作者的wordpress博客,有时需要审核他们的文章内容,虽然UGC(User-generated content)整体是好的,但是也要控制一下质量,实在不相关或spam的文章就要毫不手软的删除。日志的记录已经删除了,但是日志扩展表 postmeta 里面的数据还没有删除,也人工清理下吧,减少数据库的占用
ytkah
2022/03/14
7080
sql删除或清空表数据[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132352.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/12
9.8K0
记录下关于SQL Server的东西
定义一个递归CTE,至少需要两个查询(或者更多),第一个查询称为定位点成员(anchor member),第二个查询称为递归成员(recursive member),基本格式如下:
Jerremy
2022/05/09
1.3K0
记录下关于SQL Server的东西
SQL Server中的GUID
GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值。
全栈程序员站长
2022/07/15
5.2K0
【Oracle笔记】数据表中删除重复记录的SQL
  ROWID是ORACLE中的一个重要的概念。用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。   ROWID它是一个伪列,它并不实际存在于表中。它是ORACLE在读取表中数据行时,根据每一行数据的物理地址信息编码而成的一个伪列。所以根据一行数据的ROWID能找到一行数据的物理地址信息。从而快速地定位到数据行。数据库的大多数操作都是通过ROWID来完成的,而且使用ROWID来进行单记录定位速度是最快的。
程序员云帆哥
2022/05/12
2.8K0
【求助】从大表中删除小表中存在的记录问题
A表:30万,主键ID B表:300万,主键ID 从B表中删除ID=A表ID的记录。 DELETE FROM B WHERE EXISTS (SELECT 1 FROM (SELECT ID FROM (SELECT T.ID, ROWNUM RN FROM A) WHERE RN > 0 AND RN <= 50000) AB WHERE A.ID = B.ID); 但执行计划显示COST较大,且瓶颈是B表的全表扫描。 需求是这里有B1 ... B10多个B表(都是300万),串行操作
bisal
2019/01/29
5.1K0
SQL Server新建、修改、删除表结构。
1、点击[testdb] 2、点击[表] 3、点击[新建] 4、点击[表] 5、点击[列名] 6、点击[数据类型] 7、点击[nchar(10)] 8、点击[int] 9、点击[允许Null值] 10、点击[▲] 11、点击[设置主键] 12、点击[列名] 13、点击[数据类型] 14、点击[允许Null值] 15、点击[列名] 16、点击[数据类型] 17、点击[nchar(10)] 18、点击[int] 19、点击[文件]
裴来凡
2022/05/28
1.6K0
SQL Server新建、修改、删除表结构。
删除SQL数据库中事务日志方法
DUMPTRANSACTION[数据库名]WITHNO_LOGBACKUPLOG[数据库数据库
Java架构师必看
2021/03/22
1K0
SQL server数据库的部署
一、实验目标 1、安装一台SQL SERVER(第一台),然后克隆再一台(第二台),一共两台,修改两台的主机和IP地址。 2、使用注册的方式,用第二台远程连接第一台 二、实验步骤 1)先打开一台Wi
L宝宝聊IT
2018/06/20
1.8K0
4 - SQL Server 2008 之 使用SQL语句删除表格
本文介绍了如何使用 SQL Server 2008 中的 SQL 语句删除表格。首先介绍了删除表格的语法,然后通过两个示例讲解了如何删除表格。第一个示例是删除名为 Employee 的表格,第二个示例是删除名为 Person 的表格。在删除表格之前,需要先判断该表格是否存在,如果不存在则不进行任何操作。同时,在删除含有外键的表格之前,需要先删除外键引用的主键表格,否则会报错。
CNXY
2017/12/25
1.5K0
4 - SQL Server 2008 之 使用SQL语句删除表格
SQL Server数据库碎片
当索引所在页面的基于主关键字的逻辑顺序,和数据文件中的物理顺序不匹配时,碎片就产生了。所有的叶级页包含了指向前一个和后一个页的指针。这样就形成一个双链表。理想情况下,数据文件中页的物理顺序会和逻辑顺序匹配。整个磁盘的工作性能在物理顺序匹配逻辑顺序时将显著提升。对某些特定的查询而言,这将带来极佳的性能。当物理排序和逻辑排序不匹配时,磁盘的工作性能会变得低效,这是因为磁头必须向前和向后移动来查找索引,而不是只象某个单一方向来搜索。碎片会影响I/O性能,不过对于位于SQL Server数据缓冲内的数据页而言,碎片
张善友
2018/01/22
2.8K0
SQL Server 数据库设计
SQL Server 系统数据库在安装软件时自动创建,用于协助系统共同完成对数据库的操作;也是数据库运行的基础;
剑指工控
2021/11/09
2.5K0
SQL Server 数据库设计
SQL server数据库部署
如今生活中,到处都有数据,我们手机上一个小小的APP软件,在他的身后可能有好几十台服务器支撑着,在服务器上呢拥有数据,每个软件都是有一个后台数据库的。 常用的几个数据库有: SQL server 此数据库是微软开发的只能应用在Windows端,简单、易用 oracle 甲骨文公司开发的 它面向所有的主流平台,安全、完善,但是操作复杂 DB2 IBM公司开发,面向所有主流平台,适用于大型企业环境,安全、完善 MySQL(Mariadb) 甲骨文公司所收购,开源、体积小、速度快、稳定 SQL server数据库分为系统数据库和用户数据库两类,其中系统数据库有四个:
小手冰凉
2019/09/10
3.3K0
SQL server数据库部署

相似问题

如何从SQL Server数据库中删除记录

11

如何从sql server数据库中自动删除旧记录?

22

从SQL Server表中动态删除记录

34

SQL Server数据库不删除记录

42

固定删除SQL Server数据库记录?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文