webservice示例

来源:互联网 发布:js继承的几种方式比较 编辑:程序博客网 时间:2024/06/01 09:36

   最近学习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","Employee");call.registerTypeMapping(Employee.class, qn, new BeanSerializerFactory(Employee.class,qn),new BeanDeserializerFactory(Employee.class, 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","Employee");call.registerTypeMapping(Employee.class, qn, new BeanSerializerFactory(Employee.class,qn),new BeanDeserializerFactory(Employee.class, 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();}}


server-config.wsdd

<?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>  


web.xml

<?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的包,包可以去下载哦,这样就可以了