webservice接口客戶端調用

別人的webservice已經寫好,自己系統來調用。

首先 別人會給我們接口的wsdl文件訪問路徑


wsdl 說明了接口的參數 與方法名

我們做一個定時器 定時來執行任務,按照接口的要求將信息發送給他。

package com.***.rhcm.blh.filetimer;

import java.util.TimerTask;

import javax.servlet.ServletContext;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.***.***.blh.organ.UploadOrangeBlh;
/**
 * 
* <p>業務描述:機構定時器 </p>
* <p>公司: **軟件股份公司</p>
* @author: 
* @date: 2015-11-20
* @editor:
* @version: V1.0
 */
public class OrganTimerTask extends TimerTask{
	
	private ServletContext servletContext;
    private static boolean isRunning = false;
   
    
    public OrganTimerTask(ServletContext servletContext) {
        this.servletContext = servletContext;
    }
	@SuppressWarnings("resource")
	@Override
    public void run() {
        if (!isRunning) {
            isRunning = true;
            servletContext.log("本次任務開始");
            BeanFactory factory=new ClassPathXmlApplicationContext("applicationContext.xml");
            
            /*****引入UploadOrangeBlh 機構國家級接口定時任務*******/
            UploadOrangeBlh organBlh =  (UploadOrangeBlh) factory.getBean("uploadOrangeBlh");
            organBlh.uploadManagerOrgan();
            organBlh.uploadMedOrgan();
          
            isRunning = false;
            servletContext.log("本次任務結束");
        } else {
            servletContext.log("上次任務還在執行");
        }
    }
}
	 
	

從blh到dao 是一套業務邏輯


在blh中 反射調用自己寫的客戶端

/**
 * 
 */
package com.**.***.client.organ;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

/**
 * @author hexi
 *
 */
public class UploadOrganClient {

	public static Log log = LogFactory.getLog(UploadOrganClient.class);
	
	public UploadOrganClient(){
		
	}
	public static UploadOrganClient getInstance(){
		
		return new UploadOrganClient();
		
	}
	
	/**
	 * 
	 */
	public void callSynManagerOrgan(String xmlInput, String url) {
		
		String outputXml = "";
		JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
		factoryBean.setAddress(url);
		factoryBean.setServiceClass(SynOrganPortType.class);
		SynOrganPortType interfaces =(SynOrganPortType)factoryBean.create();
        outputXml = interfaces.synManagerOrgan(xmlInput);
//	    log.info(outputXml);
	}
	
	/**
	 * 
	 */
	public void callSynMedOrgan(String xmlInput, String url) {
		String outputXml = "";
		JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
		factoryBean.setAddress(url);
		factoryBean.setServiceClass(SynOrganPortType.class);
		SynOrganPortType interfaces =(SynOrganPortType)factoryBean.create();
        outputXml = interfaces.synMedOrgan(xmlInput);
//	    log.info(outputXml);

	}
	
	public static void main(String args){
		UploadOrganClient client = getInstance();
		String inputxml = "*";
		String url = "http://***/services/***?wsdl";
		client.callSynManagerOrgan(inputxml, url);
		
		
	}
}


發佈了41 篇原創文章 · 獲贊 5 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章