序
WebService真是烦,为了不想写那些烦人的适配代码,使用了CXF 生成的客户端,但遇到要填自定义参数的时候,却无从入手。。。
经过几天的研究,各种尝试,解读原码。终于把问题解决,项目终于可以顺序进行下去了。。
遇到的问题
1:SAP 提供的webService 要求输入账号验证信息,如下图所示,但是使用生成的CXF客户端却没有一个属性可以配置。
问题解决
整个代码如下(已经脱敏):
实现的是一个定时把需要地接的数据,通过webservice 发送到目标系统。
import com.google.gson.Gson;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.interceptor.security.JAASAuthenticationFeature;
import org.apache.cxf.interceptor.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StopWatch;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.xml.namespace.QName;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.WebServiceFeature;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.reflect.InvocationTargetException;
import java.net.MalformedURLException;