小编ree*_*eef的帖子

XMLUnit - Xml文件缩进会影响比较

我目前正在尝试使用XMLUnit库来比较两个XML文件.其中一个候选者是由我的Java Objects代码(使用JAXB)生成的,另一个是引用(我不能修改它).基本上我试图证明给定一个参考XML文件我可以反序列化它(使用Jaxb和我自己的一些类)然后将它序列化回另一个文件并仍然具有相同的内容.

该库似乎提供了我需要的服务,但是当生成的文件没有正确缩进时(以"漂亮打印"版本的形式),比较失败并且当缩进没有时它不会.例如,当生成候选者时没有缩进,内容是单行,如果缩进它正确(手动)比较是正常的.

这是XMLUnit生成的错误消息:

[不同]预期的子节点数'3'但是'1'

你们有什么想法解决这个问题吗?也许解决方案是生成一个漂亮的候选版本,在这种情况下你有想法将它与JAXB序列化器结合起来吗?

顺便说一句,如果你现在用Java比较好的XML文件解决方案,我会很高兴知道它;)

在此先感谢您的帮助.

java xml jaxb xml-serialization xmlunit

15
推荐指数
1
解决办法
3966
查看次数

XMLUnit - 比较时忽略'id'属性

我目前正在使用XMLUnit,我想知道是否有办法将其配置为忽略id我想要比较的标签的属性.

在此先感谢您的帮助.

java xml xmlunit

9
推荐指数
2
解决办法
7561
查看次数

CXF如何在没有Spring的情况下在CXF端口上设置SoapVersion

我目前正在使用没有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 ...

有任何想法吗?

编辑 - - - - - - - - - - -

问题解决了!其实我回答了我自己的问题:见下文......

谢谢!

java configuration cxf jax-ws

8
推荐指数
2
解决办法
2万
查看次数

Ember.js:如何向View添加参数

我想这很简单,但作为一个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,而不是属性值. ..)

你们有什么想法吗?我被困在这里......

谢谢!

javascript handlebars.js ember.js

8
推荐指数
1
解决办法
5910
查看次数

Maven2:货运插件热部署和Jonas支持

我试图在我的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吗?

提前致谢!

maven-2 cargo maven-cargo

5
推荐指数
1
解决办法
2129
查看次数

CXF:如何使用JAXB外部绑定文件更改WSDL导入的XML Schema的包?

我有一个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-2 wsdl2java jaxb

5
推荐指数
1
解决办法
4359
查看次数

Maven2:如何确保Maven构建使用特定的插件版本?

我刚发现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方面是否需要修复在构建过程中使用的插件版本?

谢谢!

maven-2 maven-plugin

4
推荐指数
1
解决办法
2869
查看次数

XSLT按标记名称和属性值排序

我是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)

sorting xslt

4
推荐指数
2
解决办法
1万
查看次数

将Maven生成的站点添加到生成的包中

为了为我们的项目提供一体化Jar,我们想知道是否可以将项目生成的站点(通过站点插件生成)包含到生成的项目包中?这背后的想法非常简单,我们有一个名为"sample"的项目,它演示了我们API的用法,我们希望在单个包中向用户提供有关API及其用法的文档.是否可以使用Maven创建这样的Jar?

提前致谢!

maven-2 jar maven-plugin

2
推荐指数
1
解决办法
2792
查看次数