hwl0420
9年前发布

基于CXF的WebService服务端Java代码

基于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!");   }    }