Axis 访问webservice客户端(CXF+Spring webservice)

Axis 访问webservice客户端

  1. 引入jar包,要把下面的包放在lib下不然会报错
  2. 访问代码

String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"

        

         Service service = new Service(); 

         Call call;

     try {

          call = (Call) service.createCall();

          call.setTargetEndpointAddress("http://localhost:8080/px/webservice/applyService?wsdl"); 

           call.setOperationName(new QName("http://service.train.px.com/","applyUserList")); 

           call.setUseSOAPAction(true); 

           //这下面两行一定要加上,否则接收在服务器端收不到。 

           call.addParameter("xmlStr", XMLType.XSD_STRING, ParameterMode.IN); 

           call.setReturnType(XMLType.XSD_STRING); 

           Object[] c=new Object[]{xmlStr};

           String result = (String) call.invoke(c); 

           System.out.println(result); 

          

         //将返回的字符串转换成list集合 

         //JSONArray array = JSONArray.fromObject(result); 

         //List<Album> list = JSONArray.toList(array,Album.class);

     } catch (ServiceException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

     } catch (RemoteException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

     } 

call.setTargetEndpointAddress添加的时wsdl访问地址QName两个参数分别为wsdl:import namespace,如果namespacetargetNamespace不一致导致报错可以在webservice接口上添加targetNamespacenamespace一致, 如果String result = (String) call.invoke(c);  报参数不一致的错误,在webservice的接口上添加@WebParam

贴出service接口代码

package com.px.train.service;

 

import javax.jws.WebMethod;

import javax.jws.WebParam;

import javax.jws.WebService;

 

/**

 * @description:培训上岗申请

 * @authorweiwei

 * @date2018/8/6 16:14

 */

@WebService

public interface ApplyPostService {

  

   /**

    * 培训结束用户列表

    */

   @WebMethod

   public String applyUserList(@WebParam(name="uri") String xml,@WebParam(name="xmlStr") String xmlStr);

}

 

package com.px.train.service.impl;

 

import java.util.List;

 

import javax.jws.WebMethod;

import javax.jws.WebParam;

import javax.jws.WebService;

 

import org.apache.commons.lang3.StringUtils;

import org.dom4j.Document;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import com.px.train.model.TrainClassStudent;

import com.px.train.service.ApplyPostService;

import com.px.train.service.TrainClassService;

 

@WebService(endpointInterface="com.px.train.service.ApplyPostService",serviceName="applyService",targetNamespace = "http://service.train.px.com/"

public class ApplyPostServiceImpl implements ApplyPostService {

   private static Logger LOGGER = LoggerFactory.getLogger(ApplyPostServiceImpl.class);

   @Autowired

   private TrainClassService trainClassService;

   @WebMethod(operationName= "applyUserList")

   public String applyUserList(@WebParam(name="uri") String xml,@WebParam(name="xmlStr") String xmlStr) {

     // TODO Auto-generated method stub

     List<TrainClassStudent> userList=trainClassService.getSudentList();

     /*List<TrainClassStudent> userList=new ArrayList<TrainClassStudent>();

     for (int i=0;i<4;i++){

        TrainClassStudent po=new TrainClassStudent();

        po.setUserId(i+1+"Id");po.setName("name"+i);

        po.setJobNumber("jobNumber"+i);po.setOrgId("orgId"+i);

        po.setSex(i%2);po.setStuTel("stuTel"+i+""+i);

       po.setEmail("email"+i);po.setCertificateId("certificateId"+i);

        po.setRealEndDate(new Date());

        userList.add(po);

     }*/

     String xmlStr2=getUsersXml(userList);

     System.out.println(xmlStr2);

     return xmlStr2;

   }

   @WebMethod(exclude= true)

   public String getUsersXml(List<TrainClassStudent> userList) {

     // TODO Auto-generated method stub

     Document document = DocumentHelper.createDocument();

        //添加以根节点

        Element root = document.addElement("userList");

 

        for (TrainClassStudent user : userList) {

            Element area = root.addElement("user");

            area.addElement("id").setText(StringUtils.isEmpty(user.getUserId())?"":user.getUserId());

            area.addElement("name").setText(StringUtils.isEmpty(user.getName())?"":user.getName());

            area.addElement("code").setText(StringUtils.isEmpty(user.getJobNumber())?"":user.getJobNumber());

            area.addElement("orgId").setText(StringUtils.isEmpty(user.getOrgId())?"":user.getOrgId());

            area.addElement("sex").setText(user.getSex()==null?"":user.getSex().toString());

            area.addElement("phone").setText(StringUtils.isEmpty(user.getStuTel())?"":user.getStuTel());

            area.addElement("email").setText(StringUtils.isEmpty(user.getEmail())?"":user.getEmail());

            area.addElement("certiCode ").setText(StringUtils.isEmpty(user.getCertificateId())?"":user.getCertificateId());

            area.addElement("ifTrain  ").setText("true");

            area.addElement("trainTime  ").setText(user.getRealEndDate()==null?"":user.getRealEndDate().toString());

        }

 

        return document.asXML();

   }

  

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值