当前位置: 首页 > 面试题库 >

如何使WebMethod参数为必需

黄骏喆
2023-03-14
问题内容

我们使用“从Java开始”方法来使用Metro 1.5堆栈创建JAX-WS 2.0
Web服务。当我们将诸如SoapUI的标准工具指向我们的一个Web服务时,它表明WebMethods的参数是可选的。生成的xsd显示minOccurs =
0。

我需要一种方法来使“从Java出发”方法中需要WebMethod参数(也许在xsd中为minOccurs =
1)。我认为这有一个Java注释,但我一直找不到。XmlElement批注具有必填属性,但是XmlElement不能应用于WebMethod参数。

有没有一种方法可以使我的WebMethod参数成为必需,而无需手动编辑xsd并将minOccurs设置为1?


问题答案:

我已验证Metro
2.0确实允许您设置@XmlElement(required=true)参数。生成的xsd没有minOccurs=0。它minOccurs不包含生成的xsd,因此采用默认值1。

您还必须通过将JAX-WS 2.2 webservices-api.jar放在endorsed/目录中来升级JDK 。

我在Java论坛上发布了相同的问题。

感谢jitu给出了答案,并指出minOccurs默认为1,因此将其排除在.xsd之外将具有所需的效果。

在参数SoapUI上设置@XmlElement(required = true)时,不再将参数表示为可选参数。



 类似资料:
  • 问题内容: 我已经编写了这个jQuery ajax方法,在下面调用了webmethod。除了作为用户对象的参数具有空字段之外,调用进行得很好。我在调试时可以在firebug中看到值,但它们无法通过webmethod中的User对象参数 我试图从jQuery方法传递给Webmethod的两个值是“ UserID”(Guid)和“ About”(字符串),它们都是User类的属性,但在服务端,是Use

  • 我在下面定义了一个swagger 2.0资源。如何使“param1或param2”成为必填项?调用方必须传递param1或param2。

  • 问题内容: 我有一个简单的web方法和ajax调用,并继续收到一个错误,说它无法将字符串转换为IDictionary对象? 这是ajax调用: 这是webMethod: 这是我从FireBug中看到的内容: 响应标头 服务器:Microsoft-IIS / 5.1 日期:2009年4月9日,星期四,格林尼治标准时间 jsonerror:true 缓存控制:私有 内容类型:application /

  • 问题内容: 我正在将ajax发布到webmethod上,我可以在客户端(通过Firebug)看到请求的状态为200,但未达到我的webmethod中的停止点(webmethod的第一行)。json参数一切正常,但是通过反序列化json的方式,我不得不将其更改为字符串。 js: aspx: 问题答案: 您在jQuery JSON帖子中缺少内容类型: 请参阅本文。当我遇到类似的问题时,它对我很有帮助:

  • 问题内容: 嗨,我正在Go中使用rest API,我希望用户传递JSON参数: 但是它们并非总是必需的,例如,用户只能通过而忽略其他用户。他甚至可以发送0个参数。我怎样才能做到这一点? 问题答案: 从JSON文本解组值时,程序包不需要所有字段都以JSON形式出现,也不需要所有JSON字段都具有匹配的Go字段。 因此,您没有什么特别的事情要做,只需解组您必须拥有的东西,以获取您想要或可能想要的价值。

  • 我有一个类似这样的pytest测试: 现在,作为重构的一部分,我移动了这一行: 放入它自己的夹具中(在conftest.py文件中),因为它在其他地方使用。但是,除了直接导入fixture函数外,是否有其他方法在测试中引用它?我知道funcargs通常是调用fixture的方式,但是在本文中,当我想要调用fixture时,我不在测试函数中。