我目前正在尝试使用XMLUnit库来比较两个XML文件.其中一个候选者是由我的Java Objects代码(使用JAXB)生成的,另一个是引用(我不能修改它).基本上我试图证明给定一个参考XML文件我可以反序列化它(使用Jaxb和我自己的一些类)然后将它序列化回另一个文件并仍然具有相同的内容.
该库似乎提供了我需要的服务,但是当生成的文件没有正确缩进时(以"漂亮打印"版本的形式),比较失败并且当缩进没有时它不会.例如,当生成候选者时没有缩进,内容是单行,如果缩进它正确(手动)比较是正常的.
这是XMLUnit生成的错误消息:
[不同]预期的子节点数'3'但是'1'
你们有什么想法解决这个问题吗?也许解决方案是生成一个漂亮的候选版本,在这种情况下你有想法将它与JAXB序列化器结合起来吗?
顺便说一句,如果你现在用Java比较好的XML文件解决方案,我会很高兴知道它;)
在此先感谢您的帮助.
我目前正在使用XMLUnit,我想知道是否有办法将其配置为仅忽略id我想要比较的标签的属性.
在此先感谢您的帮助.
我目前正在使用没有Spring配置文件的CXF的Web服务客户端.
它工作得很好,但我无法弄清楚如何使用Java Api设置绑定SoapVersion.使用Spring文件,如下所示:
<jaxws:binding>
<soap:soapBinding version="1.2"/>
</jaxws:binding>
Run Code Online (Sandbox Code Playgroud)
你们知道如何在Java代码中执行此操作(在端口上,在SOAPBinding上...)?
在此先感谢您的帮助!
编辑 - - - - - - - - - - -
我仍然坚持这个问题...我试图在接口上添加SOAPBinding注释,如下面的响应之一所示,但它不起作用...我仍然在寻找一种手动配置我的方法使用Soap 1.2的PortType/Binding/Bus ...
有任何想法吗?
编辑 - - - - - - - - - - -
问题解决了!其实我回答了我自己的问题:见下文......
谢谢!
我想这很简单,但作为一个Ember新手,我找不到解决方案......
所以让我说我有这个非常简单的观点:
MyApp.MyTextView = Ember.View.extend({
template: Ember.Handlebars.compile('{{value}}')
});
Run Code Online (Sandbox Code Playgroud)
我想使用此视图以显示同一对象的两个不同属性.这听起来像我想在我'调用'我的视图时添加参数.在第二个视图中,我希望能够执行以下操作(假设我的内容对象是Person:{firstName:'toto',lasName:'titi'}):
MyApp.AnotherView = Ember.View.extend({
template: Ember.Handlebars.compile('FirstName: {{view MyApp.MyTextView value="content.firstName"}} - LastName: {{view MyApp.MyTextView value="content.lastName"}}')
});
Run Code Online (Sandbox Code Playgroud)
我也尝试作为讲解了利用手把的助手在这里,但它不工作(当我使用{{亮点的firstName}}或{{亮点content.firstName}}显示什么是的firstName或content.firstName,而不是属性值. ..)
你们有什么想法吗?我被困在这里......
谢谢!
我试图在我的Maven项目中使用Cargo插件,以便从针对Jonas服务器的战争热部署中受益。
官方文档不清楚支持什么和不支持什么(例如,您可以找到以下内容:http : //cargo.codehaus.org/Hot+Deployment以及此http://cargo.codehaus.org/JOnAS + 4.x)。
无论如何,对于战争的POM,我具有以下含义:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0</version>
<configuration>
<container>
<containerId>jonas4x</containerId>
<home>C:\JOnAS-4.8.4\nt\bin</home>
</container>
<configuration>
<type>existing</type>
<home>C:\JOnAS-4.8.4</home>
</configuration>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
当我跑步时
mvn cargo:deploy
Run Code Online (Sandbox Code Playgroud)
在我的项目中,战争已复制到Jonas webapps文件夹,但没有热部署。仅复制文件,但不调用hot deploy Jonas命令,因此无法立即使用我的修改。
编辑:我也尝试按照答案中的建议添加部署程序配置,但行为是相同的(即:复制了war,但未调用Jonas hot deploy命令,以便不会在Jonas中重新加载war)。
我是否缺少某些信息?或者我说的是Cargo Maven插件不支持Jonas Hot Deployement吗?
提前致谢!
我有一个WSDL文件,它导入了几个XML Schema,每个都有相同的命名空间(让我们称之为A).我正在尝试使用JAXB外部绑定文件来更改这些模式的生成包名称(比如说B).这是一个例子:
我有一个POM文件,其中包含从WSDL生成代码的配置(使用cxf-codegen-plugin).
我的WSDL:
<definitions ...>
<types>
<xsd:schema elementFormDefault="qualified" targetNamespace="C">
<xsd:import namespace="A" schemaLocation="SCHEMA_REF"/>
<xsd:import namespace="A" schemaLocation="SCHEMA_REF"/>
...
</xsd:schema>
</types>
...
</definitions>
Run Code Online (Sandbox Code Playgroud)
这是我的实际绑定文件根本不起作用,它似乎根本没有应用(没有错误消息...).
<jaxws:bindings wsdlLocation="WSDL_LOCATION" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" jaxb:version="2.0">
<jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='C']/xs:import[@namespace='A']">.
<jaxb:schemaBindings>
<jaxb:package name="B" />
</jaxb:schemaBindings>
</jaxws:bindings>
</jaxws:bindings>
Run Code Online (Sandbox Code Playgroud)
因为我在生成中没有任何错误消息,可能是因为用于访问导入模式的XPath表达式不好...
你们有什么线索吗?我有点被困在这里......
提前感谢您的投入!
我刚发现Maven插件管理听起来很奇怪.
而在现场发电工作,我想为了有一个特定的functionnalty工作使用maven的网站插件的特定版本.假设我想使用此插件的2.0.1版本.
如果我使用我的POM的报告部分,以便使用以下命令生成我的项目的站点:
mvn site
Run Code Online (Sandbox Code Playgroud)
这很好用.我的意思是我使用的插件版本是2.0.1.以下是我的POM配置站点插件的摘录:
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>2.0.1</version>
</plugin>
</plugins>
</reporting>
Run Code Online (Sandbox Code Playgroud)
现在,如果我希望在构建生命周期的特定阶段生成我的站点,让我们说prepare-package(和目标阶段),我在以下部分添加以下部分:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>stage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)
在这里,我坚持使用来自Super POM的maven网站插件版本,即.2.0-β-7.即使我尝试添加配置指定我真的想使用版本2.0.1它仍然使用2.0-beta-7.我还尝试在该部分中添加该版本,因为报告部分中使用的配置也应该应用于构建部分.但这也不起作用.
也许我错过了一些东西,如果我错了就纠正我,但这看起来像个错误.Maven方面是否需要修复在构建过程中使用的插件版本?
谢谢!
我是XSLT的菜鸟,所以请原谅我的无知...我试图按属性值和标签名称对一个简单的XML文件进行排序,但我很难访问该属性的值.这是一个完整的例子:
<a>
<b attribute="e"></b>
<b attribute="b"></b>
<d attribute="a"></d>
<c></c>
</a>
Run Code Online (Sandbox Code Playgroud)
预期的结果是:
<a>
<b attribute="b"></b>
<b attribute="e"></b>
<c></c>
<d attribute="a"></d>
</a>
Run Code Online (Sandbox Code Playgroud)
我试图解决这个问题:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" />
<xsl:strip-space elements="*" />
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*">
<xsl:sort select="."/>
</xsl:apply-templates>
<xsl:apply-templates select="node()">
<xsl:sort select="name()"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
这显然根本不起作用......
在上面的例子中,我想按照它们的属性值对b标签进行排序,但是你可以看到d标签没有按属性值排序,因为它是另一个标签名称......
我想知道使用XSLT是否可行......你有什么想法吗?
提前致谢.
UPDATE ----------------------
我尝试了似乎工作正常并且看起来非常简单的andyb解决方案,但我对此解决方案有另一个问题.
假设我有这个XML:
<a>
<b attribute="e" optionalAttr="fg"></b>
<b attribute="b"></b>
<d attribute="a"></d>
<c></c>
</a>
Run Code Online (Sandbox Code Playgroud)
我为b标签添加了一个可选参数.应用andyb解决方案将忽略可选参数,因为它在模板中不匹配.结果如下:
<a>
<b attribute="b"></b>
<b attribute="e"></b>
<c></c>
<d attribute="a"></d>
</a> …Run Code Online (Sandbox Code Playgroud) 为了为我们的项目提供一体化Jar,我们想知道是否可以将项目生成的站点(通过站点插件生成)包含到生成的项目包中?这背后的想法非常简单,我们有一个名为"sample"的项目,它演示了我们API的用法,我们希望在单个包中向用户提供有关API及其用法的文档.是否可以使用Maven创建这样的Jar?
提前致谢!