根据特定的WSDL实现WebService。客户端无法更改。正确处理了来自客户端的请求,但是由于变量中的名称空间,客户端抱怨响应。
我想要什么(基于WSDL的soapUI响应):
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cal="http://callback.foo.com/">
<soapenv:Header/>
<soapenv:Body>
<cal:foo_statusResponse>
<result>SUCCESS</result>
<notify>Thanks!</notify>
</cal:foo_statusResponse>
</soapenv:Body>
</soapenv:Envelope>
我得到了什么(tns:
有关引起验证问题的变量的通知):
<senv:Envelope xmlns:tns="http://callback.foo.com/" xmlns:senv="http://schemas.xmlsoap.org/soap/envelope/">
<senv:Body>
<tns:foo_statusResponse>
<tns:result>SUCCESS</tns:result>
<tns:notify>Thanks!</tns:notify>
</tns:foo_statusResponse>
</senv:Body>
</senv:Envelope>
Java客户端抛出此异常:
[com.sun.istack.SAXParseException2; lineNumber:2;columnNumber:162;
意外元素(uri:“
http://callback.foo.com/,本地:“结果”))。期望的元素是<{}
result>,<{} notify>]
实施代码段:
class fooStatusRS(ComplexModel):
result = Unicode()
notify = Unicode()
class foo_callback(ServiceBase):
@srpc(Unicode, Unicode, Unicode, Unicode, statusbarInfo, anotherResponse,
_out_header=None,
_out_variable_names=("result", "notify"),
_returns=(Unicode, Unicode),
_out_message_name="foo_statusResponse",
_operation_name="foo_status_rq")
def foo_status(foo_id, reply, ref, status, statusbar, another):
if foo_id:
print foo_id
return fooStatusRS(result="SUCCESS", notify="Foo received!")
这是不可能的(尚未完成), 维护者在此处也回答了类似的问题。
解决方法是将侦听器添加到“ method_return_string”的event_manager中,然后执行一些字符串操作。
def _method_return_string(ctx):
ctx.out_string[0] = ctx.out_string[0].replace("tns:result>", "result>")
ctx.out_string[0] = ctx.out_string[0].replace("tns:notify>", "notify>")
问题内容: 我已经导入了WSDL并使用它发送SOAP请求。看起来像这样: 问题出在Calculate元素中。Web服务无法接受。Web服务不喜欢这样的名称空间… 使用SoapUI,我发现此请求可以正常工作: 那么,如何将请求从第一个版本更改为第二个版本?(不使用肮脏的把戏!) (如果会导致正确的请求格式,则重新导入不是问题。) 再说一遍:不允许使用任何肮脏的技巧,例如入侵请求流以对其进行修改! 尽
我有一个jsp网页。我需要删除用户名从数据库当我按删除按钮从网页。我尝试了下面的代码,但是我不能删除名称,而是在用户名数据库中插入一个新行和一个空值。 unblockServlet.java: 受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{//TODO自动生成的方法
问题内容: 在.NET Core 1.0(所有API响应)的全局级别上,如何配置Startup.cs,以便在JSON响应中删除/忽略空字段? 使用Newtonsoft.Json,您可以将以下属性应用于属性,但我希望避免将其添加到每个属性中: 问题答案: [.NET Core 1.0] 在Startup.cs中,可以将JsonOptions附加到服务集合,并在其中设置各种配置,包括删除空值: [.N
我有这样的回应,当谈到检查用户未经授权。 有没有可能从未经授权的响应中删除路径?因为它没有为用户提供有价值的信息 }
问题内容: 我从pandas函数获得了这样的输出文件。 我正在尝试只输出第二列,即 通过删除第一行的顶部和底部行。我怎么做? 问题答案: 您只需要属性: 您可以转换为列表或访问每个值:
2)如果我按照下面的方式编辑package-info,那么它是很好的,但是问题是我创建的是一个JAXB整数元素如下所示,前缀删除没有应用于这些元素