如何使用curl和SOAP调用MobileFirst适配器?

时间:2016-01-27 09:10:04

标签: ibm-mobilefirst mobilefirst-adapters

美好的一天,

我们需要通过curl和SOAP调用MobileFirst Adapter,省略身份验证。

如何使用curl和application / x-www-form-urlencoded这样做的示例如下所示,但我们还需要使用SOAP调用适配器。

curl -XPOST -d 'adapter=PushAdapter&procedure=sendNotifications&parameters=["[\"UserA\",\"UserB\"]", "Pushed.you"]' http://localhost:10080/application/invoke

原因是,我们希望通过仅允许SOAP的网络区域触发发送PushNotifications。

我们对不同的建议持开放态度,例如实现新的JavaAdapter(不是JS),实现额外的WebService,或弹出的任何可以以可接受的方式满足要求的内容。

我希望有人能想出如何通过SOAP调用适配器,省略身份验证。

谢谢你, gizmore

----编辑---

我添加了一个新的Java适配器,就像Hasan建议的视频一样。 非常感谢您提示:)

我添加了这样的WebService:

@WebService
@Path("/soap")
@OAuthSecurity(enabled=false) // Disable the imfAuthentication :)
public class ExternalPushService {

    @POST
    @Path("/push")
    @WebMethod(action="push")
    public String push(@WebParam(name="name") String name) {
        return name + "ABC";
    }
}

我现在可以对http://localhost:10080/app/adapters/PushBridge/soap/push端点执行HTTP POST请求,但不会解析SOAP。 相反,我在“name”参数中获得完整的Envelope。 如果我对PushBridge / soap进行SOAP调用,则不允许使用405方法。

有人有想法,我如何让SOAP在那里开箱即用?

1 个答案:

答案 0 :(得分:1)

答案是:否

当你在java适配器中添加@WebService时,这个面临着战争:

  

问题描述:此注释需要Web服务项目。将Java项目转换为面向指定运行时环境的Web项目

SOAP基础服务基于JAX-WS规范。

但是

Java适配器基于JAX-RS规范。 https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-0/server-side-development/java-adapter/