当前位置: 首页 > news >正文

友情链接网站免费自己做公司网站难吗

友情链接网站免费,自己做公司网站难吗,域名申请了怎么用,网站设计制作一条龙免费jaxb xml配置Log4j 1.x和Log4j 2.x均支持使用XML文件来指定日志记录配置 。 这篇文章探讨了与使用JAXB通过Java类处理这些XML配置文件相关的一些细微差别。 本文中的示例基于Apache Log4j 1.2.17 #xff0c; Apache Log4j 2.6.2和Java 1.8.0_73#xff08;带有JAXB xjc 2.2.… jaxb xml配置 Log4j 1.x和Log4j 2.x均支持使用XML文件来指定日志记录配置 。 这篇文章探讨了与使用JAXB通过Java类处理这些XML配置文件相关的一些细微差别。 本文中的示例基于Apache Log4j 1.2.17 Apache Log4j 2.6.2和Java 1.8.0_73带有JAXB xjc 2.2.8-b130911.1802。 Log4j 1.x的XML语法由DTD而不是W3C XML Schema定义 。 幸运的是JDK附带的JAXB实现提供了一个“实验性的不受支持的”选项可以将DTD用作生成Java类的输入。 以下命令可用于对log4j.dtd运行xjc命令行工具 。 xjc -p dustin.examples.l4j1 -d src -dtd log4j.dtd 下一个屏幕快照对此进行了演示。 运行上述命令并在屏幕快照中演示了该命令这导致在src目录中的Java程序包称为dustin.examples.l4fj1中生成Java类 dustin.examples.l4fj1允许从兼容log4j.dtd的XML解log4j.dtd并编入log4j.dtd兼容的XML。 Log4j 2.x的XML配置可以是“简洁”或“严格”的在本文中我需要使用“ strict ”因为这是使用W3C XML Schema文件Log4j-config.xsd和I定义的语法的形式。 需要一个模式来使用JAXB生成Java类。 可以针对此XML模式运行以下命令以生成表示Log4j2严格XML的Java类。 xjc -p dustin.examples.l4j2 -d src Log4j-config.xsd -b l4j2.jxb 运行上面的命令导致Java类的Java包中所产生src目录下名为dustin.examples.l4j2允许从解组Log4j-config.xsd兼容XML和编组到Log4j-config.xsd - 兼容的XML 。 在上一个示例中我包括一个带有选项-b的JAXB绑定文件 后跟该绑定文件的名称 -b l4j2.jxb 。 需要使用此绑定来避免错误该错误阻止xjc生成具有错误消息“属性“值”的Log4j 2.x兼容Java类。 使用jaxbproperty解决此冲突。” 在百慕大的 “ 属性”值“属性”中的“ 英国人 ”中已经讨论了此问题及其解决方法。 用于解决此冲突 。 接下来显示我在这里使用的JAXB绑定文件的源。 l4j2.jxb jxb:bindings version2.0xmlns:jxbhttp://java.sun.com/xml/ns/jaxbxmlns:xsdhttp://www.w3.org/2001/XMLSchemajxb:bindings schemaLocationLog4j-config.xsd node/xsd:schemajxb:bindings node//xsd:complexType[nameKeyValuePairType]jxb:bindings node.//xsd:attribute[namevalue]jxb:property namepairValue//jxb:bindings/jxb:bindings/jxb:bindings /jxb:bindings 刚刚显示的JAXB绑定文件允许xjc成功解析XSD并生成Java类。 要付出的一小笔代价除了编写和引用绑定文件之外是将需要在Java类中将KeyValuePairType的“ value”属性作为名为pairValue而不是value的字段进行访问。 解组 使用Log4j 1.x的log4j.dtd和Log4j 2.x的Log-config.xsd JAXB生成的类的潜在用例是将 Log4j 1.x XML配置文件转换为Log4j 2.x “严格” XML配置文件 。 在这种情况下需要解log4j.dtd兼容Log4j 1.x log4j.dtd的XML和编组log4j.dtd Log4j 2.x Log4j-config.xsd的XML。 下面的代码清单演示了如何使用先前生成的JAXB类解组Log4j 1.x XML。 /*** Extract the contents of the Log4j 1.x XML configuration file* with the provided path/name.** param log4j1XmlFileName Path/name of Log4j 1.x XML config file.* return Contents of Log4j 1.x configuration file.* throws RuntimeException Thrown if exception occurs that prevents* extracting contents from XML with provided name.*/public Log4JConfiguration readLog4j1Config(final String log4j1XmlFileName)throws RuntimeException{Log4JConfiguration config;try{final File inputFile new File(log4j1XmlFileName);if (!inputFile.isFile()){throw new RuntimeException(log4j1XmlFileName is NOT a parseable file.);}final SAXParserFactory spf SAXParserFactory.newInstance();final SAXParser sp spf.newSAXParser();final XMLReader xr sp.getXMLReader();final JAXBContext jaxbContext JAXBContext.newInstance(dustin.examples.l4j1);final Unmarshaller unmarshaller jaxbContext.createUnmarshaller();final UnmarshallerHandler unmarshallerHandler unmarshaller.getUnmarshallerHandler();xr.setContentHandler(unmarshallerHandler);final FileInputStream xmlStream new FileInputStream(log4j1XmlFileName);final InputSource xmlSource new InputSource(xmlStream);xr.parse(xmlSource);final Object unmarshalledObject unmarshallerHandler.getResult();config (Log4JConfiguration) unmarshalledObject;}catch (JAXBException | ParserConfigurationException | SAXException | IOException exception){throw new RuntimeException(Unable to read from file log4j1XmlFileName - exception,exception);}return config;} 由于log4j.dtd的名称空间处理的性质因此将Log4j 1.x XML解组比某些XML解组要复杂一些。 Gik的Jaxb UnMarshall不带名称空间和Deepa S的 “ 如何指示JAXB忽略命名空间 ”中描述了这种处理皱纹的方法。 使用此方法有助于避免错误消息 UnmarshalException意外元素uri“ http://jakarta.apache.org/log4j/”local“ configuration”。 预期要素... 为了解组我在本例中引用log4j.dtd的Log4j 1.x在使用Java 8运行此代码时我需要为Java启动器提供特殊的Java系统属性。 -Djavax.xml.accessExternalDTDall 为避免出现错误消息“由于accessExternalDTD属性设置的限制由于不允许文件访问因此无法读取外部DTD。” 可以在NetBeans的FaqWSDLExternalSchema Wiki页面上找到有关此内容的其他详细信息。 如下面的示例代码所示使用JAXB生成的Java类编组Log4j 2.x XML非常简单。 /*** Write Log4j 2.x strict XML configuration to file with* provided name based on provided content.** param log4j2Configuration Content to be written to Log4j 2.x* XML configuration file.* param log4j2XmlFile File to which Log4j 2.x strict XML* configuration should be written.*/public void writeStrictLog4j2Config(final ConfigurationType log4j2Configuration,final String log4j2XmlFile){try (final OutputStream os new FileOutputStream(log4j2XmlFile)){final JAXBContext jc JAXBContext.newInstance(dustin.examples.l4j2);final Marshaller marshaller jc.createMarshaller();marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);marshaller.marshal(new ObjectFactory().createConfiguration(log4j2Configuration), os);}catch (JAXBException | IOException exception){throw new RuntimeException(Unable to write Log4 2.x XML configuration - exception,exception);}} 在这种编组情况下有一个微妙之处在刚刚显示的代码清单中可能并不明显。 从Log4j-config.xsd生成的JAXB xjc的类缺少任何带有XmlRootElement的类。 从Log4j 1.x log4j.dtd生成的JAXB类确实包含带有此XmlRootElement批注的类。 由于基于Log4j 2.x Log4j-config.xsd的Java类没有此注释因此在尝试直接封送ConfigurationType实例时会发生以下错误 MarshalException –带有链接的异常[com.sun.istack.internal.SAXException2由于缺少XmlRootElement批注因此无法将类型为“ dustin.examples.l4j2.ConfigurationType”的元素封送为元素] 为避免此错误我改编了上面代码清单的第18行new ObjectFactory().createConfiguration(ConfigurationType) 对传入的ConfigurationType实例上调用new ObjectFactory().createConfiguration(ConfigurationType)进行了编组现在已将其成功编组。 结论 JAXB可用于从Log4j 1.x的log4j.dtd和Log4j 2.x的Log4j-config.xsd生成Java类但是与此过程相关的一些细微差别可以成功地生成这些Java类并使用生成的Java封送和封送XML的类。 翻译自: https://www.javacodegeeks.com/2016/07/jaxb-log4j-xml-configuration-files.htmljaxb xml配置
http://wiki.neutronadmin.com/news/251050/

相关文章:

  • 访问量大的网站选择多少流量的服务器何时十大免费实用网站
  • sirna在线设计网站广告设计公司招聘
  • wordpress4.7.5网络推广优化方法
  • 兰州市城乡建设局网官网站自豪地采用wordpress 怎么去掉
  • 网站在阿里云备案韩国手表网站
  • 网站建设国家标准房地产网站系统
  • 帮我们做网站的人找不到了做图的模板下载网站有哪些
  • 国内用react做的网站长沙做网站建设公司哪家好
  • 商水县建设局网站wordpress 文章标题字体
  • 替人做非法网站内蒙古住房与建设官方网站
  • 12306网站开发成本档案室建设网站
  • 免费建商城网站wordpress mu 插件
  • 免费建站个人网站king cms网站建设
  • 做本地旅游网站广告设计学什么
  • 免费照片的网站模板免费下载网站 网络推广
  • 杭州网站忧化做包装一般看什么网站
  • 做商城网站公司吗frontpage如何做网站
  • 网站建设费计入无形资产王璐 牟平 网站建设
  • 咋样做班级主页网站网页设计在线培训网站有哪些
  • 建筑人才网官网登录排名优化培训
  • 网站开发简历项目经验秦皇岛汽车网站制作
  • 星月教你做网站回顾文档浙江省住房建设厅继续教育网站
  • 北京网站建设 合一网站建设2018需要什么
  • 三位数的域名网站全球最大的设计网站
  • 网站建设需要了解的重庆口碑最好的装修公司
  • 长春网站优化哪家好sem竞价推广怎么做
  • 电子商务网站设计的基本要求wordpress 子模板
  • 有关做洁净工程的企业网站怎样判断网站的好坏
  • 德阳百度网站建设安卓app公司开发
  • 如何做好网站关键词优化wordpress图片付费主题