我正在一个SAP项目上工作,我必须在绑定url中调用具有jsessionid的非SAP服务。我已经从wsdl中生成了一个代理类,并用URL定义了一个逻辑端口。在我的情况下,它应该是动态的,如{host}/service/foo/binding;jsessionid={xxx},但它是静态的,如{host}/service/foo/binding
如何实现会话处理?
编辑:这里的问题是,它不仅用于身份验证,还用于负载平衡。jsessionid必须通过URL重写提交。什么好主意吗?
您应该能够使用soamemanager事务配置它:
- 转到服务配置屏幕并选择消费者代理
- 编辑现有的,或者创建一个新的逻辑端口
- 转到传输设置选项卡并更改URL访问路径
保存后,可以在事务SM59中找到作为目标的逻辑端口。它是外部HTTP连接树中生成的一个。
为参数提供值可能需要对SAP软件进行修改。系统使用cl_http_client=>create_by_destination方法来获取执行http调用的客户端对象,所以也许您可以在那里实现一些自定义代码。