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的包,包可以去下载哦,这样就可以了
- webservice示例
- webservice 示例
- webService示例
- 【WebService】快速构建WebService示例
- 简单WebService示例
- Asp 调用WebService示例
- JS调用WebService示例
- spring+webservice工程示例
- JS调用webservice示例
- JS调用WebService示例
- webservice的示例
- WebService发布示例
- webservice发布示例
- webservice使用示例
- JS调用WebService示例
- WebService开发示例
- JS调用WebService示例
- js调用webservice示例
- py2exe error: python25.dll
- qt中配置文件的读取
- 3.1面向对象的概念
- 关于热区的一些
- 关于no office executable found!解决方法
- webservice示例
- Javascript的一些困惑
- TEX介绍
- 跨浏览器实现自定义事件处理
- 序列化与反序列化
- Javascript 中的大括号{}和中括号[]详解
- Flex和Java整合错误 [FaultEvent fault=[RPC Fault faultString="Send failed"
- MyEclipse:Address already in use
- Opensolaris: TCL和 Expect 编译与安装