加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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();
	}

}


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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读