WebService发送数据+接收数据并进行处理操作

Posted Mxzer.Zhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebService发送数据+接收数据并进行处理操作相关的知识,希望对你有一定的参考价值。

(一)使用WebService发送数据

1.定义webService接口
import java.util.List;
import javax.jws.WebParam;
import javax.jws.WebService;
import com.mxz.fvp.dto.ADto;
 
@WebService
public interface MxzReceiveService {
    public boolean addExpressBarRecord(@WebParam(name = "record") ADto record) throws Exception;// 方法1
    public boolean batchAddExpressBarRecord(@WebParam(name = "listRecord") List listRecord) throws Exception; // 方法2
}
2.工具类的创建
public class AUtil {
    private final static Logger logger = Logger.getLogger(AUtil.class);
    private static ApplicationContext factory = null;
    private static MxzReceiveService mxzReceiveService ;
    private static BService bService;
    static {
        factory = new ClassPathXmlApplicationContext("classpath:application-*.xml");
        bService = (BService) factory.getBean("bService");
    }
 
    private static synchronized MxzReceiveService getMxzReceiveService () {
      try {
            if (mxzReceiveService  == null) {
              JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
              factory.setServiceClass(MxzReceiveService class); // 1设置请求接口
              String linkUrl = CommonDataUtil.getConfigValue(ServiceConstants.MXZ_WEBSERVICE_URL);// 2查询数据库获取链接地址
              factory.setAddress(linkUrl + "services/MxzReceiveService "); //3设置地址
              mxzReceiveService = (MxzReceiveService ) factory.create(); // 4创建客户端对象
           }
      } catch (Exception e) {
          logger.error("mxzReceiveService Webservice initial error!");
          mxzReceiveService = null;
     }
      return mxzReceiveService ;
   }
3.具体使用
    public static void batchAddExpressBarRecord(List listRecord) {
        try {
                if(getFvpReceiveService() == null) // 3.1初始化链接对象
                              return;           
 
            //3.2数据其他处理操作
            if(!validateCode(listRecord))
            return;   
       
           // 3.3调用接口
            boolean isSendSuccess = mxzReceiveService .batchAddExpressBarRecord(listRecord);
            if(!isSendSuccess) {
                //....其他操作
                return;
            }
            triggerCsdOorderBackState(listRecord); //3.3其他操作
        } catch (Exception e) {    //3.3其他操作
            saveSendFvp(listRecord, "m"); //....其他操作
            logger.error("Sent to mxzReceiveService.batchAddExpressBarRecord fail!" + e.getMessage());
        }
   }
(一)使用WebService接收数据并处理
1.创建webService接口
import javax.jws.WebParam;
import javax.jws.WebService;
 
@WebService(targetNamespace = "http://rece/")
public interface AServer {
public void receiveLog(@WebParam(name = "wayNo") String wayNo,
        @WebParam(name = "inputTypeCode") String inputTypeCode,
        @WebParam(name = "isSuccess") boolean isSuccess,
        @WebParam(name = "failreason") String failreason);   
}
2.定义接口实现类,并实现其他操作
@WebService(targetNamespace = "http://waybilllog/", endpointInterface = "com.mxz.service.webService.AServer ")
public class AServerImpl implements AServer{
      private Logger logger=Logger.getLogger(this.getClass()); // this:AServerImpl 
      private BService bService; //提供gettter/setter方法
      private CDaoImpl cDao; //提供gettter/setter方法
 
@Override
public void receiveLog(String waybillNo, String inputTypeCode, boolean isSuccess, String failreason) {
            logger.info("接收返回结果:单号"+wayNo+",类型:"+inputTypeCode+",状态:"+isSuccess+",描述:"+failreason);
           
            try{ //其他操作
                 .........................
           }catch(Exception ex){
                logger.error("接收返回结果失败:"+wayNo+","+inputTypeCode+","+isSuccess+","+failreason,ex);
          }
   }
}
 
 
 

以上是关于WebService发送数据+接收数据并进行处理操作的主要内容,如果未能解决你的问题,请参考以下文章

(转)WebService运行原理

webservice接口收不到数据,提示传输成功

WebService的工作原理

WebService的使用

QT 中向webservice发送xml数据请求

错误处理 - NSKeyedUnarchiver