java - 针对 xsd 测试 Web 服务对象

标签 java web-services

我的任务是为 Web 服务编写测试。但测试只是为了根据 xsd 文件验证我们的对象。 测试步骤为: 从我们的 xsd 创建一个 Schema 对象。然后从模式中获取 validator 并根据它验证我们的对象。 我的问题:

  • 此测试的目的是什么?是为了防止有人改变对象结构吗?
  • 是否应该以这种方式测试 xsd 中描述的所有对象?尝试测试没有 的对象时,出现 javax.xml.bind.MarshalException(无法将类型“classname”编码为元素,因为它缺少 @XmlRootElement 注释) @XmlRootElement 注释。

在哪里可以阅读更多这些类型的测试以及它们是如何命名的?

最佳答案

一种测试方法是使用表示整个服务负载的 XML 文件。然后,对到处都有错误的 XML 进行更改,并验证每个更改。

另一种方法是创建子元素并使用它们进行编码

<T> JAXBElement<T> wrap( String ns, String tag, T o ){
    QName qtag = new QName( ns, tag );
    Class<?> clazz = o.getClass();
    @SuppressWarnings( "unchecked" )
    JAXBElement<T> jbe = new JAXBElement( qtag, clazz, o );
    return jbe;
}

JAXBElement<Foo> jbe = wrap( "/some/ns", "aFoo", new Foo() );
m.marshal( jbe,... );

并将生成的 XML 数据传递给验证。

关于java - 针对 xsd 测试 Web 服务对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27979949/

相关文章:

c# - WCF IList 序列化问题

c# - 如何修改 web 服务代理以获取原始 XML

java - App Engine 的灵活性有多成熟?

java - 单元格渲染器 Java Swing 的单元格的圆角边缘

java - 应用程序在旋转时崩溃,NullPointerException

java - 线程 "main"java.io.FileNotFoundException I/O Java 中的奇怪异常

c# - WCF 或 HttpWebRequest - 使用哪个?

c# - 为什么我的 WebApi 收到响应状态代码 204 No Content?

java - 无法从 WSDL 生成 stub /java 骨架

java - 使用 HTTP 请求获取最后一个 JSON 数组元素