基于CXF的WebService服務端Java代碼

hwl0420 8年前發布 | 5K 次閱讀 Java Apache CXF

基于CXF的WebService服務端代碼 
</div>

 

ESBServiceSoap.java    

package com.esb.services.commservices;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;
import javax.xml.bind.annotation.XmlSeeAlso;

/**
 * This class was generated by Apache CXF 2.1.3
 * Fri Oct 09 23:12:25 CST 2015
 * Generated source version: 2.1.3
 * 
 */

@WebService(targetNamespace = "http://services.esb.com/commServices/", name = "ESBServiceSoap")

public interface ESBServiceSoap {
    @WebResult(name = "result", targetNamespace = "")
    @WebMethod(operationName = "EsbInterfaceService", action = "http://services.esb.com/commServices/EsbInterfaceService")
    public String esbInterfaceService(
            @WebParam(name = "esbHeader", targetNamespace = "") java.lang.String esbHeader,
            @WebParam(name = "payload", targetNamespace = "") java.lang.String payload)
            throws Exception;
    }

ESBServiceSoapImpl.java ~ 2KB         

package com.esb.services.commservices;

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;



import com.esb.util.EsbServiceUtil;
import com.esb.util.JaxbUtil;


/**
 * This class was generated by Apache CXF 2.1.3
 * Fri Oct 09 23:12:25 CST 2015
 * Generated source version: 2.1.3
 * 
 */

@javax.jws.WebService(
                      serviceName = "ESBService",
                      portName = "ESBServiceSoap",
                      targetNamespace = "http://services.esb.com/commServices/",
                      endpointInterface = "com.esb.services.commservices.ESBServiceSoap")

public class ESBServiceSoapImpl implements ESBServiceSoap {

    private static final Logger LOG = Logger.getLogger(ESBServiceSoapImpl.class.getName());

    /* (non-Javadoc)
     * @see com.esb.services.commservices.ESBServiceSoap#esbInterfaceService(com.esb.services.commservices.EsbInterfaceService  parameters )*
     */
    public String esbInterfaceService(String esbHeader, String payload) { 
        LOG.info("Executing operation esbInterfaceService");
        try {
            //解析esbheader
            java.util.Map<String, String> headers = EsbServiceUtil.analyzeEsbHeader(esbHeader);
            String requestID = headers.get("RequestID");
            String errorCode = "123";
            String errorDesc = "123";

            //構建返回的javabean
            UserList users = new UserList();
            User user = new User();
            user.setAddr("北京");
            user.setName("張三");
            List<User> lu = new ArrayList<User>();
            lu.add(user);
            users.setUsers(lu);
            //將javabean轉換成為xml,然后再轉換成為字符串
            String context = JaxbUtil.convertToXml(users, "utf-8");
            //構建返回結果
            String result = EsbServiceUtil.pottingResult(requestID, errorCode, errorDesc, context);
            return result;
        } catch (Exception ex) {
            ex.printStackTrace();
            throw new RuntimeException(ex);
        }
    }
}

[文件] User.java ~ 666B     (1)    

package com.esb.services.commservices;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlAccessorType(XmlAccessType.FIELD)  
@XmlRootElement(name = "User")
public class User {

    @XmlElement(name = "name")
    private String name;
    @XmlElement(name = "addr")
    private String addr;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddr() {
        return addr;
    }
    public void setAddr(String addr) {
        this.addr = addr;
    }

}

[文件] UserList.java ~ 737B     (1)    

package com.esb.services.commservices;

import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)  
@XmlRootElement(name = "UserList")  
@XmlType(propOrder = { "users" }) 
public class UserList {

    @XmlElementWrapper(name = "users")  
    @XmlElement(name = "User") 
    public List<User> users;

    public List<User> getUsers() {
        return users;
    }

    public void setUsers(List<User> users) {
        this.users = users;
    }

}

[文件] ServerTest.java ~ 348B     (1)    

package com.esb.services.commservices;


import javax.xml.ws.Endpoint;


public class ServerTest {

    public static void main(String[] args) {
        String address="http://localhost:8899/test";
        ESBServiceSoapImpl esbServiceImpl = new ESBServiceSoapImpl();
        Endpoint.publish(address, esbServiceImpl);
        System.out.println("esb!");
    }

}
 本文由用戶 hwl0420 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!