微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webservice 完整 实现方式 服务端 客户端 cxf

服务端:

package com.thunisoft.np.fy.dwjk.akxt;

import javax.jws.WebParam;
import javax.jws.WebService;

@WebService(targetNamespace = "http://service.akxt.dwjk.fy.np.thunisoft.com")
public interface ICaseForAkxtService {

    public String bgcbrInfo(@WebParam(name="queryParam") String queryParam,
            @WebParam(name="systemId") String systemId);
}


package com.thunisoft.np.fy.dwjk.akxt.impl;

import java.util.Iterator;
import java.util.List;

import javax.jws.WebParam;
import javax.jws.WebService;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

import com.thunisoft.artery.module.organ.IUser;
import com.thunisoft.artery.module.organ.util.ArteryOrganUtil;
import com.thunisoft.np.datamodel.cases.fy.base.TFySpzzcybg;
import com.thunisoft.np.fy.dwjk.akxt.ICaseForAkxtService;
import com.thunisoft.np.fy.dwjk.dao.impl.CaseInfoDao;
import com.thunisoft.np.fy.dwjk.pub.XmlParseUtils;
import com.thunisoft.summer.util.StringUtils;

@WebService(endpointInterface = "com.thunisoft.np.fy.dwjk.akxt.ICaseForAkxtService",targetNamespace = "http://service.akxt.dwjk.fy.np.thunisoft.com")
public class CaseForAkxtService implements ICaseForAkxtService {

    @Autowired
    @Qualifier("caseInfoDao")
    private CaseInfoDao caseInfoDao;
    
    private Log log = LogFactory.getLog(this.getClass());
    
    public String bgcbrInfo(@WebParam(name ="queryParam") String queryParam,@WebParam(name="systemId")  String systemId) {
        Document resultDom = XmlParseUtils.createDocument();
        Element root = resultDom.addElement("NpfyCase");
        if (StringUtils.isEmpty(queryParam)) {
            root.addAttribute("errMsg","参数为空!");
            log.error("systemId=" + systemId + " 参数为空,无法查询!");
            return resultDom.asXML();
        }
        try {
            Document paramDom = XmlParseUtils.getDomFromString(queryParam);
            Element paramEle = paramDom.getRootElement();
            Attribute fyAttr = paramEle.attribute("FY");
            Attribute ajlbAttr = paramEle.attribute("AJLB");
            Attribute sljdAttr = paramEle.attribute("SLJD");
            Attribute cxrqAttr = paramEle.attribute("CXRQ");
            
            String fyStr = fyAttr.getText();
            String ajlbStr = ajlbAttr.getText();
            String sljdStr = sljdAttr.getText();
            String cxrqStr = cxrqAttr.getText();
            
            if(org.apache.commons.lang.StringUtils.isEmpty(fyStr)
                || org.apache.commons.lang.StringUtils.isEmpty(ajlbStr)
                || org.apache.commons.lang.StringUtils.isEmpty(sljdStr)
                || org.apache.commons.lang.StringUtils.isEmpty(cxrqStr)){
                log.error("systemId=" + systemId + " 参数不全");
                root.addAttribute("errMsg","参数不全!");
                return resultDom.asXML();
            }
            int fy = Integer.valueOf(fyStr);
            int nAjlb = Integer.valueOf(ajlbStr);
            int sljd = Integer.valueOf(sljdStr);
            List<TFySpzzcybg> list= caseInfoDao.getBgcbrInfo(fy,nAjlb,sljd,cxrqStr);
            for (Iterator iterator = list.iterator(); iterator.hasNext();) {
                TFySpzzcybg tFySpzzcybg = (TFySpzzcybg) iterator.next();
                Element ajEle = root.addElement("aj");
                ajEle.addAttribute("ajbh",tFySpzzcybg.getCBhAj());
                Integer nYcy = tFySpzzcybg.getNYcr();
                Integer nXcy = tFySpzzcybg.getNXcr();
                String cYcy = String.valueOf(nYcy);
                String cXcy = String.valueOf(nXcy);
                
                IUser ycyUser = ArteryOrganUtil.getUserById(cYcy);
                String ycyDept = (ycyUser==null?null:ycyUser.getDeptId());
                IUser xcyUser = ArteryOrganUtil.getUserById(cXcy);
                String xcyDept = (xcyUser==null?null:xcyUser.getDeptId());
                ajEle.addAttribute("oldCbr",cYcy);
                ajEle.addAttribute("newCbr",cXcy);
                ajEle.addAttribute("oldCbts",ycyDept);
                ajEle.addAttribute("newCbts",xcyDept);
            }
            return resultDom.asXML();
        } catch (Exception e) {
            root.addAttribute("errMsg","解析参数失败!");
            log.error("systemId=" + systemId + " 解析参数失败");
            return resultDom.asXML();
        }
    }
}

spring 文件

 <bean id="caseForAkxtService" class="com.thunisoft.np.fy.dwjk.akxt.impl.CaseForAkxtService"></bean>

<!-- 案款系统接口地址-->
    <jaxws:endpoint id="CaseForAkxtService" address="/CaseForAkxtService">
        <jaxws:implementor>
            <ref bean="caseForAkxtService" />
        </jaxws:implementor>
    </jaxws:endpoint>




客户端:

    String param = "efef";         Service service = new Service();         try {             Call call = (Call) service.createCall();             String methord = "bgcbrInfo";             call.setTargetEndpointAddress("http://172.16.192.246:8080/np-fy-dwjk/services/CaseForAkxtService");             call.setoperationName(methord);             call.addParameter("queryParam",//设置要传递的参数                 org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);             call.addParameter("systemId",//设置要传递的参数                     org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);             call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);             call.setUseSOAPAction(true);             call.setSOAPActionURI("http://service.akxt.dwjk.fy.np.thunisoft.com/bgcbrInfo");             String result = (String) call.invoke(new Object[] { param,"fwewef" });             logger.info("接口返回结果:" + result);                                  } catch (Exception ex) {             logger.error("调用谈话系统接口失败",ex);         }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐