2021.12.9 java代码对接sap接口(soap协议、webservice)

本文记录了使用Java对接SAP接口时遇到的问题,包括SOAP协议和WebService的使用。首先通过soapui进行接口测试,发现因未配置本地域名映射导致访问失败,配置后测试成功。接着,尝试了axis、axis2和http直接发送请求报文三种方式的代码测试,最终确定http方式可行。遗留问题在于axis和axis2方式在访问外部接口时出现报错,而http方式可以正常工作,推测可能是请求报文格式不正确。解决方案是手动拼接特定的报文,通过注释部分报文实现了成功请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2021.12.9 java对接sap接口(soap协议、webservice)

问题:对接sap接口,代码调试

执行:

1、soapui 软件测试是否能正确访问

  • 未能正确访问,因为未在本地配置域名映射

  • 要在C:\Windows\System32\drivers\etc里面配置。

    • # localhost name resolution is handled within DNS itself.
      	127.0.0.1       localhost
      #	::1             localhost
          192.168.2.21    xxx.xxx.com
      
      
  • 配置完后soapui软件访问成功!

2、代码测试

2.1、用axis框架的方式测试连接
package com.ly.utils;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.message.SOAPHeaderElement;
import javax.xml.rpc.ParameterMode;
import java.util.List;

public class SendWebServiceUtil {
   
   
    /**
     *axis  方式
     * @param nameSpace  命名空间
     * @param endpoint   wsdl发布地址
     * @param methods    方法名
     * @param list       参数列表
     * @return           返回值
     * @author LY
     */
    public  String webserviceConn(String userName,String passWord, String nameSpace, String endpoint, String methods, List<String> list) {
   
   
        String result = null;
        Object[] parameter = new Object[list.size()];
        try {
   
   
            Service service = new Service();
            Call call = (Call) service.createCall();

            call.setTargetEndpointAddress(new java.net.URL(endpoint));
            call.setOperationName(new javax.xml.namespace.QName(nameSpace,methods));//WSDL里面描述的接口名称
            for(int i=0;i<list.size();i++){
   
   
                call.addParameter("arg"+i, XMLType.XSD_STRING, ParameterMode.IN);//接口的参数
                parameter[i] = list.get(i);
            }
            call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
            call.setUseSOAPAction(true);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值