Webservice服务
一、创建webservice
以用户相关的函数User为例创建webservice,事务码bapi查看bapi函数,BasisComponents-Security-User,选择Tools标签页,选中Create Web Service,点Start Wizard。
给Service定义一个名字,本例是ZWS_BAPI_USER。
选择Endpoint,保持默认。
选择Operations,选中要用的bapi函数。
配置服务,这里的Profile和安全性相关,本例保持默认。实际开发时应考虑安全因素,尽量选择安全性高的。
选择包和传输号。最终生成。
事务码SOAMANAGER,打开后选择Application and Scenario Communication标签页,选择Single Service Administration。
搜索ZWS*,Create Webservice生成。
点击 Display selected Binding's WSDL URL,查看WSDL。
二、更改webservice
如果要在ZWS_BAPI_USER里面更改,增加一个函数,那么点击编辑-Internal View-Modify Operations-选中要增加的bapi函数,保存并生成一下。
三、SoapUI测试webservice
SoapUI创建一个工程Test,添加一个WSDL(也就是第一节里面查看的WSDL的URL)。创建TestSuite和TestCase,放入相应的入参测试BAPI_USER_EXISTENCE_CHECK,检查用户zhangsan是否存在。
测试用户zhangsan不存在。
事务码SU01创建zhangsan,测试用户zhangsan存在。
四、查看webservice日志及排错
测试BAPI_USER_GET_DETAIL函数失败,报错500 Server Internal Error,提示日志在Provider端。事务码SOAMANAGER - Logs and Traces - Logs/Trace Viewer,查看webservice的日志。
日志提示是Return出现了异常。查看BAPI_USER_GET_DETAIL函数的return不是optional的,而且Min.Occurr为1,因此入参必须有一行return。测试入参加上这一行空的return就可以测试通过了。
开启HTTPS服务
事务码strust,在 ssl server standard 选项上点击右键,选择create,保持默认值保存。
开启HTPS服务,事务码smicm,在服务的界面点击菜单栏 service,选择create,指定端口号(一般用44300)和服务名HTTPS,保存。
再次事务码strust,在 ssl client ssl client(standard) 选项上点击右键,选择create,保持默认值保存。在这里可以上传证书。
维护参数,事务码rz10,选择适当的参数文件,选择“扩展维护”。编辑,新建参数,输入参数名和值如下。点击复制,返回后点击复制,保存。重启服务后生效。
ssl/ciphersuites = 135:PFS:HIGH::EC_X25519:EC_P256:EC_HIGH
ssl/client_ciphersuites = 150:PFS:HIGH::EC_X25519:EC_P256:EC_HIGH
icm/HTTPS/client_sni_enabled = TRUE
ssl/client_sni_enabled = TRUE
SETENV_26 = SECUDIR=$(DIR_INSTANCE)$(DIR_SEP)sec
SETENV_27 = SAPSSL_CLIENT_CIPHERSUITES=150:PFS:HIGH::EC_X25519:EC_P256:EC_HIGH
SETENV_28 = SAPSSL_CLIENT_SNI_ENABLED=TRUE