webservice示例
发布时间:2020-12-17 01:16:30 所属栏目:安全 来源:网络整理
导读:?? 最近学习webservice,上网查了好久,发现了一个例子,然后自己又加了一点东东,结合起来,分享一下,O(∩_∩)O~ 包:axis-bin-1_4 这个里面有实体及数组的传递,可以看一下 实体类: ? package com.emp;public class Dept {private String deptno;private
?? 最近学习webservice,上网查了好久,发现了一个例子,然后自己又加了一点东东,结合起来,分享一下,O(∩_∩)O~ 包:axis-bin-1_4 这个里面有实体及数组的传递,可以看一下 实体类: ? package com.emp; public class Dept { private String deptno; private String dname; public String getDeptno() { return deptno; } public void setDeptno(String deptno) { this.deptno = deptno; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } public Dept(String deptno,String dname) { this.deptno = deptno; this.dname = dname; } public Dept() { } } package com.emp; import java.io.Serializable; @SuppressWarnings("serial") public class Employee implements Serializable{ private String empNo; private String empName; private int age; public String getEmpNo() { return empNo; } public void setEmpNo(String empNo) { this.empNo = empNo; } public String getEmpName() { return empName; } public void setEmpName(String empName) { this.empName = empName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Employee(String empNo,String empName,int age) { this.empNo = empNo; this.empName = empName; this.age = age; } public Employee() { } public Employee(String empNo) { this.empNo = empNo; } }
package com.biz; import com.emp.Dept; import com.emp.Employee; public class EmployeeBiz { public Employee getempname() { Employee emp = new Employee(); emp.setEmpNo("0001"); emp.setEmpName("jack"); emp.setAge(21); return emp; } public String getemp() { return "这是员工信息表"; } public Employee[] getlist() { Employee emp1 = new Employee("0001","jack",21); Employee emp2 = new Employee("0002","lily",20); Employee[] ary = {emp1,emp2}; return ary; } public String geta(Employee emp,Dept dept) { String empno = emp.getEmpNo(); String empname = emp.getEmpName(); int age = emp.getAge(); String deptno = dept.getDeptno(); String dname = dept.getDname(); String str = empno+empname+age+deptno+dname; System.out.println("biz="+str); return str; } }
package com.test; import java.net.MalformedURLException; import java.net.URL; import java.rmi.RemoteException; import javax.xml.namespace.QName; import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.ser.BeanDeserializerFactory; import org.apache.axis.encoding.ser.BeanSerializerFactory; import com.emp.Dept; import com.emp.Employee; public class EmployeeTest { /** * 得到实体 */ public static void getemp() { String url = "http://localhost:8088/employee/services/empbiz"; Service service = new Service(); Call call; Employee employee = null; try { call = (Call) service.createCall(); QName qn = new QName("urn:BeanService","Employee"); call.registerTypeMapping(Employee.class,qn,new BeanSerializerFactory(Employee.class,qn),new BeanDeserializerFactory(Employee.class,qn)); call.setTargetEndpointAddress(new URL(url)); call.setOperationName("getempname"); employee = (Employee) call.invoke(new Object[]{}); System.out.println(employee.getEmpName()+"的编号是:"+ employee.getEmpNo()+",他今年"+employee.getAge()+"岁了"); } catch (ServiceException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } } /** * 得到普通信息 */ public static void getempinfo() { String url = "http://localhost:8088/employee/services/empbiz"; Service service = new Service(); Call call; try { call = (Call) service.createCall(); call.setTargetEndpointAddress(new URL(url)); call.setOperationName("getemp"); String res = (String) call.invoke(new Object[]{}); System.out.println(res); } catch (ServiceException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } } /** * 得到集合数组 */ public static void getlist() { String url = "http://localhost:8088/employee/services/empbiz"; Service service = new Service(); Call call; Object[] obj = {}; try { call = (Call) service.createCall(); QName qn = new QName("urn:BeanService",qn)); QName qn1 = new QName("urn:BeanService3","empobj"); call.registerTypeMapping(Object[].class,qn1,new BeanSerializerFactory(Object[].class,qn1),new BeanDeserializerFactory(Object[].class,qn1)); call.setTargetEndpointAddress(new URL(url)); call.setOperationName("getlist"); obj = (Object[]) call.invoke(new Object[]{}); for(int i=0;i < obj.length;i++) { Employee emp = new Employee(); emp = (Employee) obj[i]; System.out.println(emp.getEmpName()+emp.getEmpNo()+emp.getAge()); } } catch (ServiceException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } } /** * 向客户端传递实体 */ public static void aaa() { String url = "http://localhost:8088/employee/services/empbiz"; Service service = new Service(); Call call; Employee emp = new Employee(); emp.setAge(22); emp.setEmpName("jim"); emp.setEmpNo("0003"); try { call = (Call) service.createCall(); QName qn = new QName("urn:BeanService",qn)); QName qn2 = new QName("urn:BeanService2","Dept"); call.registerTypeMapping(Dept.class,qn2,new BeanSerializerFactory(Dept.class,qn2),new BeanDeserializerFactory(Dept.class,qn2)); call.setTargetEndpointAddress(new URL(url)); call.setOperationName("geta"); String res = (String) call.invoke(new Object[]{emp,new Dept("aa","开发部")}); System.out.println(res); } catch (ServiceException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } } public static void main(String [] args) { getemp(); getempinfo(); getlist(); aaa(); } }
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <globalConfiguration> <parameter name="sendMultiRefs" value="true"/> <parameter name="disablePrettyXML" value="true"/> <parameter name="dotNetSoapEncFix" value="true"/> <parameter name="enableNamespacePrefixOptimization" value="false"/> <parameter name="sendXMLDeclaration" value="true"/> <parameter name="sendXsiTypes" value="true"/> <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/> </globalConfiguration> <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/> <service name = "empbiz" provider = "java:RPC"> <parameter name = "className" value = "com.biz.EmployeeBiz"/> <parameter name = "alloweMethods" value = "*"/> <beanMapping languageSpecificType="java:com.emp.Employee" qname="ns:Employee" xmlns:ns="urn:BeanService"/> <beanMapping languageSpecificType="java:com.emp.Dept" qname="ns:Dept" xmlns:ns="urn:BeanService2"/> <arrayMapping xmlns:ns= "urn:BeanService3" qname= "ns:empobj" type= "java:java.lang.Object[]" innerType= "cmp-ns:anyType" xmlns:cmp-ns= "http://www.w3.org/2001/XMLSchema" encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/" /> </service> <transport name="http"> <requestFlow> <handler type="URLMapper"/> </requestFlow> </transport> </deployment>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>employee</display-name> <servlet> <servlet-name>emp</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>emp</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app> 我是用axis1.4的包,包可以去下载哦,这样就可以了 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |