使用wsdl文件生成用axis2调用sap生成的webservice(带用户密码认证)

 第一步:【建议1.6版本左右】我用的1.79版本的生成

     下载 Axis下载地址 http://axis.apache.org/axis2/java/core/download.html

     嫌麻烦:第二种 链接:https://pan.baidu.com/s/1S-3QmK85LjVUFd7iRxs0wg
     提取码:el5l
        配置环境变量:          AXIS2_HOME    D:\axis2-1.7.9

                                           path   %AXIS2_HOME%\bin

下载后解压:视图

  使用wsdl文件生成用axis2调用sap生成的webservice(带用户密码认证)_第1张图片

第二步:

使用wsdl文件生成用axis2调用sap生成的webservice(带用户密码认证)_第2张图片

 

如图二所示:

使用wsdl文件生成用axis2调用sap生成的webservice(带用户密码认证)_第3张图片

第三步:(重要)

  输入WSDL2Java -uri zco_out_to_sap.wsdl -p com.crm.sap.webservice.feedback -o feedback  命令

     解释:zco_out_to_sap.wsdl  文件名    com.crm.sap.webservice.feedback 生成的bin目录下的文件夹

如图:

使用wsdl文件生成用axis2调用sap生成的webservice(带用户密码认证)_第4张图片

然后再看:文件夹

  使用wsdl文件生成用axis2调用sap生成的webservice(带用户密码认证)_第5张图片

自动生成2个文件-导入项目中

使用wsdl文件生成用axis2调用sap生成的webservice(带用户密码认证)_第6张图片

使用wsdl文件生成用axis2调用sap生成的webservice(带用户密码认证)_第7张图片

一下提供几个类:

package test;
public class SendSapHead {
    private String SYSID = "CRM";//sap那边定义的标识表示系统 
    private String IFID;
    private String IFNO;
    private String SCENEID;
    private String SUBSCENEID;
    private String SUSER;
    private String SDATE;
    private String STIME;
    private String SDATATYPE;
    private String KEYDATA;

    public SendSapHead(String IFID, String IFNO, String SCENEID, String SUBSCENEID, String SUSER, String SDATE, String STIME, String SDATATYPE, String KEYDATA) {
        this.IFID = IFID;
        this.IFNO = IFNO;
        this.SCENEID = SCENEID;
        this.SUBSCENEID = SUBSCENEID;
        this.SUSER = SUSER;
        this.SDATE = SDATE;
        this.STIME = STIME;
        this.SDATATYPE = SDATATYPE;
        this.KEYDATA = KEYDATA;
    }

    public String getSYSID() {
        return this.SYSID;
    }

    public void setSYSID(String sYSID) {
        this.SYSID = sYSID;
    }

    public String getIFID() {
        return this.IFID;
    }

    public void setIFID(String iFID) {
        this.IFID = iFID;
    }

    public String getIFNO() {
        return this.IFNO;
    }

    public void setIFNO(String iFNO) {
        this.IFNO = iFNO;
    }

    public String getSCENEID() {
        return this.SCENEID;
    }

    public void setSCENEID(String sCENEID) {
        this.SCENEID = sCENEID;
    }

    public String getSUBSCENEID() {
        return this.SUBSCENEID;
    }

    public void setSUBSCENEID(String sUBSCENEID) {
        this.SUBSCENEID = sUBSCENEID;
    }

    public String getSUSER() {
        return this.SUSER;
    }

    public void setSUSER(String sUSER) {
        this.SUSER = sUSER;
    }

    public String getSDATE() {
        return this.SDATE;
    }

    public void setSDATE(String sDATE) {
        this.SDATE = sDATE;
    }

    public String getSTIME() {
        return this.STIME;
    }

    public void setSTIME(String sTIME) {
        this.STIME = sTIME;
    }

    public String getSDATATYPE() {
        return this.SDATATYPE;
    }

    public void setSDATATYPE(String sDATATYPE) {
        this.SDATATYPE = sDATATYPE;
    }

    public String getKEYDATA() {
        return this.KEYDATA;
    }

    public void setKEYDATA(String kEYDATA) {
        this.KEYDATA = kEYDATA;
    }
}

第二个调用方式:

package test;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.transport.http.HttpTransportProperties;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

public class TestToSap {

    public static void main(String[] args) {
        try {
                SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
                String dateStr = df.format(new Date());
                ZCO_OUT_TO_SAPStub service = new ZCO_OUT_TO_SAPStub();
                HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
                auth.setUsername("sap账号");
                auth.setPassword("sap密码");
                service._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, auth);
                ZCO_OUT_TO_SAPStub.ZdataToSapSync async = new ZCO_OUT_TO_SAPStub.ZdataToSapSync();
                ZCO_OUT_TO_SAPStub.String strJson = new ZCO_OUT_TO_SAPStub.String();
                JSONObject head=new JSONObject();
            String sap_navl = "D1"+new Date().getTime()+""+ new Random().nextInt(5);
            SendSapHead sheadr = new SendSapHead("OUT_TO_SAP_CRM_MATNR",//sap约定标识
                    sap_navl,
                    "",
                    "",
                    "crmrequest",//标识(所以标识约定都是sap那边接口提供的)
                    DateUtils.getDataString(DateUtils.yyyyMMdd),
                    DateUtils.getDate("HHmmss"),
                    "json",dateStr);
            head.put("CONTROL", JSONObject.parse(JsonUtil.bean2json(sheadr)));
            JSONObject object = new JSONObject();
            JSONArray array = new JSONArray();
            object.put("VKORG", "1000");//传入参数
            object.put("VTWEG", "00");
            object.put("STYPE","ZFD");
            array.add(object);
            head.put("DATA", array);
            strJson.setString(head != null ? head.toJSONString():"");
            async.setInJson(strJson);
            ZCO_OUT_TO_SAPStub.ZdataToSapSyncResponse zdataToSapSyncResponse = service.zdataToSapSync(async);
            System.out.print(zdataToSapSyncResponse.getOutJson().toString());
        }catch (Exception ex){
                ex.printStackTrace();
        }
    }
}

 

最后附上所需要的 pom文件

                
			org.apache.axis2
			axis2-kernel
			1.6.1
		
		
			org.apache.axis2
			axis2-codegen
			1.6.1
		
		
			org.apache.axis2
			axis2-adb
			1.6.1
		
		
			org.apache.axis2
			axis2-transport-local
			1.6.1
		
		
			org.apache.axis2
			axis2-transport-http
			1.6.1
		


		
			wsdl4j
			wsdl4j
			1.4
		
		
			junit
			junit
			4.12
		

最后声明:

    请注意版本axis2版本 高版本可能有些调用方法找不到,建议尝试或者较低版本

你可能感兴趣的:(java基础篇,java开发工具)