【问题标题】:php java web servicephp java 网络服务
【发布时间】:2011-10-06 04:24:55
【问题描述】:

web服务是用java(apache轴)开发的,这个web服务有重载方法。

public String displayName(int studentid)
public String displayName(string name,int grade)

举例

这些方法暴露出来,可以被wsdl查看。如果php客户端想访问这个web服务方法,php有能力区分这两种方法吗?从长远来看,仅仅因为方法重载会不会有任何问题?

谢谢,

【问题讨论】:

    标签: java php web-services methods overloading


    【解决方案1】:

    通常应避免 Web 服务的操作重载,因为这会使事情复杂化(WSDL 2.0 不允许重载操作)。还具有唯一的操作名称可确保与不同客户端工具的最大互操作性

    一种方式

    • 使用 Document/Literal 非包装样式 WSDL(WSDL1.1 版本)。这有助于重载操作。
    • 确保客户端可访问的 WSDL 是这种样式。

    另一种方式,但有点复杂。

    • 默认情况下,Axis 不支持过载操作。如果您为具有重载操作的类生成了 WSDL,它将只显示一个操作。
    • 但有一条出路。我不确定您使用的是哪个轴版本,但您可以使用 Custome Message Receiver。结帐this link
    • 这里需要配置一个类,以便在消息到达实际的 Web 服务方法之前接收消息。

    我知道您使用的是轴,但我建议您看看它的处理方式有多优雅 in JAX-WS

    【讨论】:

    • 感谢 Santosh,它澄清了我的疑问
    • @andare,如果这解决了您的问题,请接受这个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    相关资源
    最近更新 更多