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();

   }

  

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章