- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 JAX-WS 引用实现(版本 2.1.7)开发一些 Web 服务。它们是基于契约的,即 WSDL 和 XSD 文件不是由 wsgen 生成的。
这使我可以自由地使用 XSD 限制来加强对通过 SOAP 消息传递给我的服务的值的验证。以下是此类“受限”XSD 元素的两个示例:
<xsd:element name="maxResults" minOccurs="1">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="1000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="lastName" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="25"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
@SchemaValidation
对我的服务类进行注释以强制执行模式验证。但是,JAX-WS 没有按预期强制执行验证规则。行为如下:
maxResults
)。 maxResults
> 1000 或 maxResults
< 1)通过验证过程而不被报告,并被注入(inject)到我的 JAXB 生成的 Java 结构中。尽管有 xsd:positiveInteger
,即使是负值也被认为是有效的。类型! lastName
长度超过 25 个字符)也不会报告。 <xsd:element>
中出现的限制标签已正确执行,但
<xsd:restriction>
在基于 JAX-WS 的上下文中使用时,JAXB 似乎完全忽略了元素。
最佳答案
我终于找到了问题所在...
为了让我的 Web 服务在 JUnit 上下文中工作,即通过 Endpoint.publish()
发布,我不得不删除 wsdlLocation
来自我的 @WebService
的属性注释。如果我不这样做,wsdlLocation = "WEB-INF/wsdl/SearchIndividualsV1_0.wsdl"
传递给 @WebService
注释与传递给 Endpoint.publish()
的 URL 值冲突方法,http://127.0.0.1:9000/rpe-ws/SearchIndividuals
.
阅读 Glen Mazza 的博客 (http://www.jroller.com/gmazza/entry/soap_xml_schema_validation) 后,附加说明 部分,我放回wsdlLocation
属性和所有限制现在都已正确执行。
换句话说,删除 wsdlLocation
在 @WebService
注解不会阻止服务本身工作,但会阻止 <xsd:restrictions>
中声明的限制要素得到适当执行。 <xsd:element>
中声明的限制然而,元素仍然被正确执行。
因此,我不得不重新解决这个问题 wsdlLocation
使我的单元测试正常工作的兼容性问题,但这比生产环境中的非工作验证更重要......
以防万一...在非 Web 上下文中运行 Web 服务时,任何人都知道这种 WSDL 位置不兼容问题吗?
谢谢,
杰夫
关于validation - JAX-WS RI 不强制执行 XSD 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7754424/
我正在使用 Java 11、Spring Boot 2.1.1 和 Apache CXF 3.2.7 公开导入 XSD 架构的 SOAP Web 服务。在 WSDL 中它显示为: 当我发送查询失败
Jonathans-MacBook-Pro-2:pickaxe jod$ ri ActiveRecord::Base#save Nothing known about ActiveRecord 这应该
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
使用 maven,有几个插件可以支持,例如从 XSD 生成 JAXB 类,例如org.codehaus.mojo:jaxb2-maven-plugin 和 org.jvnet.jaxb2.maven2
当我输入“ri”时,PowerShells的默认设置认为它是“删除项”的别名-如何使用ri命令调用“R” uby“I” ndex? 我尝试cd到C:\ Ruby22并输入: rdoc --all --
我最喜欢 Ruby 的原因之一是它的学习非常简单。如果我想发现新东西,我可以打开 irb 和 ri,然后找到新的方法来轻松地做事。 我发现在 javascript 中做这件事并不容易。 我喜欢能够将开
我们有一个复杂的类结构,我们正在尝试使用 JAXB-RI 将其编码到 xml 文件。编码似乎可以在 Spring 的 jaxb2Marshaller 中正常工作,但在我们尝试使用的 jaxb-ri 中
当您从 OS X 术语窗口运行 Ruby ri 命令以查看特定命令的文档时,您如何“退出”该文档?在文档末尾,显示 (END),但我不知道如何退出。我试过 CTRL-C、CTRL-D、Esc 等,但找
我有一些为我的应用程序生成的自定义 RDoc 数据。我也想创建自定义 RI 文档,但我无法在任何地方找到该命令。这是什么? ri Hash 返回手册页。 ri CustomObject 没有。我希望两
我尝试先安装一个 gem gem install rdoc-data成功安装后,我尝试了 rdoc-data --install 但是,我得到了错误:不支持你的ruby版本2.1.1,只支持1.8.7
我的应用程序中出现以下异常。 com.sun.faces.config.ConfigurationException: It appears the JSP version of the contai
我有两台计算机运行此代码: import java.io.*; import java.util.*; import gnu.io.*; public class Deb implements Ser
我继承了一个代码库,其中一部分是使用 Eclipse 生成器构建的 Web 服务。生成的代码似乎有许多文件路径(用于 wsdls 等),它们引用原始开发人员盒子上的位置。例如,在服务类的静态构造函数中
为此,我主要对 pgsql 感兴趣,但我想知道在任何 RDBMS 中是否有一种方法可以执行插入操作,无需禁用和重新启用任何 FOREIGN KEY 或 NOT NULL约束,在两个相互引用的表上。 (
刚刚使用 rvm 方法将 ruby 新安装到 ubuntu 服务器上。 ruby -v 返回我正在运行的版本,1.9.2 很好,我能够执行我正在尝试学习的书中的基本代码.所以在命令提示符下,如下
在交互式 ruby 控制台中,如果我输入 ri 然后我得到一个未定义的方法错误,我是否明确必须在某处安装文档才能让它工作? irb(main):015:0* ri --help NoMethodE
介绍 我和我的 friend 正在开发一个 JavaFX 应用程序,它充当我们学校的规划师。我们有任务(类作业)、 Activity 、类(class)和学生信息。为了尝试将数据持久存储在用户的硬盘上
假设我有以下两个类: package example.model; public class Model { public static class Inner {} public O
我正在阅读 de Ruby of Pickaxe(ruby 版本 2.0)这本书,但我无法执行此语句 $ export RI="--format ansi --width 70" 我正在使用 Ubun
我在 Mac OS X 上使用 zsh。当我键入 ri 后跟类名时,一切正常。但是,如果我想查找特定的方法文档(例如 Array#new),shell 会告诉我 zsh: no matches fou
我是一名优秀的程序员,十分优秀!