20170326 ABAP调用外部webservice 问题

1.SE80 创建企业服务:

 

代理生成:出现错误

库处理程序中出现例外

错误的值:未知类型参考ns1:ArrayOfMLMatnrResource

尝试:

一、测试本地文件;---无效

1. 将网址链接(JAVA发布的web service通常以?wsdl结尾),另存到本地,保存为 
xml文件
2. 修改xml文件,删除下面内容,删除后保存
<wsdl:binding ……> …… </wsdl:binding>
<wsdl:port …….> …….</wsdl:port>
3. SE80创建web service proxy时,就Select source,选择Local file,其他都一 
样
刚看一个链接里有介绍:http://hi.baidu.com/tktik/item/fcaf0e53e26cbe3a32e0a951

二、SICF中激活服务;---无效,

外部webservice地址:

http://10.4.64.19:8090/srm/service/IMatnrResourceService?wsdl
得到服务ID:10.4.64.19:8090

三、解决方案:

Tcode: SPROXSET  Proxy Generation: Settings

维护视图:SPROXSET,添加自己的用户,--推测是激活自己webservice SPROXY 的权限

NAME         代理生成:设置:参数名称
USERNAME 用户名
VALUE        代理生成:设置:参数值
INACTIVE Inactive 'X', Active SPACE

***问题二、HTTP Code 404

完成SE80 创建webservice sproxy; soamanager 激活服务后,
Code

  CLEAR ERROR.
  TRY.
      CREATE OBJECT PRXY
        EXPORTING
          LOGICAL_PORT_NAME = 'ZMLSCP_GET_RESOURCE'.

      CALL METHOD PRXY->HANDLE_IMATNR_RESOURCE_SERVICE
        EXPORTING
          HANDLE_IMATNR_RESOURCE_SERVIC1 = I_SERVICE1
        IMPORTING
          HANDLE_IMATNR_RESOURCE_SERVICE = O_SERVICE.
    CATCH CX_AI_SYSTEM_FAULT INTO ERROR.
      O_STATU = 'E'.
      O_MSG = ERROR->ERRORTEXT.

*      RET_MSGS-MSGTY   = 'E'.
*      RET_MSGS-MSGTX   = ERROR->ERRORTEXT.
*      APPEND RET_MSGS.
  ENDTRY.

得到:O_MSG                     SRT: Unsupported xstream found: ("HTTP Code 404  : Not Found")

原因:client错误,
upd 800 报错:

不存在代理类'ZCO_IMATNR_RESOURCE_SERVICE_PO'的逻辑端口'ZMLSCP_GET_RESOURCE'

注意:

102 800都要去配置
102配置了只能在102里用,800配置了只能在800里用

我在800 再搞一遍试下,



原文地址:https://www.cnblogs.com/rainysblog/p/6625527.html