问题标签 [jaxb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3597 浏览

xml - 连接 EJB - 使用 JAXB 接口的 XML

我试图将 XML 模式添加到现有的 EJB 项目中。JAXB 用于将 XML-Schema 绑定到 Java 类。因为我们将在 EJB 处于会话状态时使用搜索引擎通过 DTO 进行爬网。

我找不到将实体类文件映射到 XML-Schema 的任何直接方法。

到目前为止,我们可以实现的唯一方法是创建 Web 服务,生成生成 xml-schema (XSD) 的 WSDL,然后通过 JAXB(xjc 命令)解析 XSD 文件以创建 java 类文件。现在使用 mapping-binding.xml 文件,我们可以映射 XML 和 Java 类文件。

但现在的问题又是如何将其映射到实体类。

这就是我们想要实现的目标:

  • 带有 XML 模式的 XML 数据对象,(这已经存在于 JAXB 规范中)。
  • 实体 Bean 然后扩展或具有此 JAXB 对象的接口。
  • 所有持久性功能都由实体 Bean 管理...
  • 然后,实体 Bean 将包含 JAXB 中的 XML Marshalling 和 UnMarshalling 功能。
  • 可以从实体 Bean 对象中以二进制或 XML 形式检索值对象。
  • JSP 可以轻松地从值对象中提取 XML 模式和 XML 数据,并对它执行诸如 XSL 转换之类的操作。

我的论点是实体 Bean 没有与 JAXB 对象交互的标准方法。

Castor 可能是解决方案,但是我们必须再次实现 Web 服务或使用 Castor JDO。

我发现 XStream 非常有用,因为它使用转换器类,您可以在其中调用实体 bean 类对象并生成 xml 文件。但我不喜欢使用另一个类,而是将这些功能合并到现有的 bean 类中。

你能在这方面帮助我吗?


我会告诉你我真正想要达到的目标。我正在创建一个搜索引擎,它将在会话中的 EJB 期间被调用,并将通过 DTO 使用爬虫并获取 XML 格式的快照。搜索将根据不同的标准。

Lucene 是搜索引擎工具之一,但它使用自己的属性和文件(将更像是独立的)

我已经有 DTO,Web 服务使用它在 PHP 和 Java 应用程序(EJB 层)之间进行通信。我想重新使用 jaxb 中的那些 DTO 作为爬虫来从 XML 中的表中获取输出,这是我无法做到的,因为 JAXB 通过 xml-schema 使用它自己生成的类。就像你说的那样,我还没有找到一种方法来指示 JAXB 到 bean 类。

0 投票
3 回答
1470 浏览

java - Oracle 10g Web 应用程序中的 JAXB 2

我有一个使用JAXB 2的 Web 应用程序。在Oracle 10g 应用服务器上部署时,我一尝试编组 XML 文件就会出错。事实证明,Oracle 将JAXB 1包含在一个偷偷改名为“xml.jar”的 jar 中。

如何强制我的 webapp 使用我部署的 jaxb jar 的版本,WEB-INF/lib而不是 Oracle 强制进入类路径的版本,最好是通过配置而不是在我的代码中弄乱类加载器?

0 投票
4 回答
8399 浏览

java - “链接 javax/xml/namespace/QName 类时违反加载程序约束”来自 Oracle 10g 上的 webapp

我们有一个 Web 应用程序,可以部署在许多应用程序服务器上,包括 Oracle 10g。然而,在那个平台上,我们遇到了类路径问题。webapp 使用 JAXB 2,但 Oracle 10g 附带 JAXB 1,这会导致错误。为了解决这些问题,我们将 Oracle 配置为首选 Web 应用程序中的类,但现在我们在尝试实例化 JAXB 上下文时遇到上述错误。

查找“违反加载器约束”异常 - 当已加载一个类加载器的类尝试访问同一包中的包私有但由不同的类加载器加载的内容时,似乎会抛出该异常。我已经尝试在我们的 webapp 中删除任何包含 javax.xml.namespace.QName 的 jar,并验证它是被拾取的 Oracle 中包含的实例,但错误仍然存​​在。有任何想法吗?

(这是关于 10g 和 JAXB 2的早期问题的后续问题。)

0 投票
5 回答
35608 浏览

xml - JAXB 绑定自定义

尝试从 xsd 生成类时,出现此错误:

我的 xsd 定义了一个元素来对无界元素进行分组,如下所示:

我的自定义绑定遵循此页面上的指定,但它不起作用。这是我的绑定:

我的意图是为 orderPropertyList 生成一个单独的类,而不是在 xsd 的根元素内生成内部类的默认行为。

我在这里这里看到过有同样意图的人,但它对我来说不能正常工作。:(

JAXB 版本:

有什么帮助吗?

0 投票
1 回答
1339 浏览

java - XMLEntityScanner.peekChar 中的 ArrayIndexOutOfBoundsException 从 HttpRequest 读取 XML

我正在从我的 servlet doPost() 中的 HttpServletRequest 读取 XML 数据,并将 Reader 从 req.getReader() 传递给 JAXB 解组器。我尝试了几种不同的输入 XML,但我总是得到这个异常。

这只发生在我的 Live Web 服务器上,而不是本地开发机器上。无论输入是什么(尽管我只尝试了大约 90k 个输入),堆栈跟踪的消息部分始终显示为“8192”。我查看了 XMLEntityScanner.java 第 491 行,可以看到正在读取的缓冲区,并且该缓冲区确实是一个数组。对我来说,使用从零开始的索引 8192 无法读取 8k 缓冲区是有道理的,所以这一定是一个错误 - 但原因是什么,我该怎么办?


我问这个已经通过大量的侦探工作找到了答案。我想为下一个可怜的家伙省去麻烦,因为 Apache 已经拒绝修复它。

0 投票
3 回答
12036 浏览

xml - 使用 JAXB 获取布尔属性的 getter

我正在尝试使用 jax-ws 公开服务,但我得到的第一个惊喜是 Weblogic 不支持请求/响应对象的内部类。在这里克服这种情况后,我面临另一个挑战:

生成getXXX()而不是/附加到isXXX()方法。

我需要生成此方法,因为当我启动服务时我收到消息:

尝试了自定义:

没有效果。:(

有什么帮助吗?

0 投票
11 回答
10590 浏览

java - Java XML 绑定

您使用什么将 XML 绑定到 Java?JAXB、Castor 和 XMLBeans 是一些可用的选择。我看到的比较都是三四年前的。我愿意接受其他建议。编组/解编组性能和易用性特别令人感兴趣。

澄清:我不仅想看看你使用什么框架,还想看看你使用其中一个框架而不是其他框架的理由。

0 投票
2 回答
6042 浏览

xsd - JAXB - XJC - 影响生成的类型安全枚举类和成员

使用 XJC 编译器(来自 JAXB 包)编译以下 simpleType 时...

我最终在 Java 中得到了以下枚举(删除了导入语句和注释)

这正是我想要的......除了public String value()方法。我希望public String getValue()根据 Sun 的命名约定调用该方法。这样我就可以轻松地在使用 EL 的 JSP 页面中使用它。现在我必须解决它。

getValue()有没有人有任何经验将 XJC 编译进一步调整为使用方法而不是方法的更有用的枚举value()?或者我可以添加一个方法或什么?

PS 这发生在 JAXB 的 v2.0.3 中。我下载了最新版本v2.1.8 和那里一样...

0 投票
2 回答
1750 浏览

java - JAXB 或 StAX 消息限制

我目前正在使用 Axis 2 实现在 Bea Websphere 6.1 环境中开发 WebService,我正在尝试尊重 Web 服务的当前标准(JAXB、JAXWS、StAX ...)。

在这个平台上,一条 XML 消息可以存在多长时间?

我四处搜索,但没有找到与该主题相关的任何内容。

0 投票
3 回答
6662 浏览

java - 使用 jaxb 解组生成的轴(包含多引用)soap 响应

我正在使用一个轴 1.4 Web 服务,它返回我想使用 jaxb 注释解组到我的域对象中的肥皂响应。在某些返回的消息包含 multiRef 元素之前,我的初始测试运行良好。使用 multiRef 编组的对象在我的客户端注释模型对象中显示为 null。

我的问题是 JAXB 是否支持使用 multiRef 元素解组肥皂响应?如果是这样,怎么做?如果没有,是否有人知道将轴 1.4 肥皂响应解组到我在 java 中的域模型中的更好方法?