SOAPMonitorServiceorg.apache.axis.monitor.SOAPMonitorServiceSOAPMonitorPort5001

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Java soap axis使用

系統 1790 0

1.引入Jar包

?
Java soap axis使用
?

2.Web.xml中添加信息

?

      <servlet>
		<servlet-name>SOAPMonitorService</servlet-name>
		<servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class>
		<init-param>
			<param-name>SOAPMonitorPort</param-name>
			<param-value>5001</param-value>
		</init-param>
		<load-on-startup>100</load-on-startup>
	</servlet>
	<servlet>
		<servlet-name>AdminServlet</servlet-name>
		<servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
		<load-on-startup>100</load-on-startup>
	</servlet>
	<servlet>
		<servlet-name>AxisServlet</servlet-name>
		<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>SOAPMonitorService</servlet-name>
		<url-pattern>/SOAPMonitor</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>AdminServlet</servlet-name>
		<url-pattern>/servlet/AdminServlet</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>/servlet/AxisServlet/</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>*.jws</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>/services/*</url-pattern>
	</servlet-mapping>
	<listener>
		<listener-class>
			org.apache.axis.transport.http.AxisHTTPSessionListener
		</listener-class>
	</listener>
    

?

3.創建Service類

      package net.hello.soap;

public class HelloService {

	public Person sayHello(String username, Toy toy) {
		System.out.println("接收:" + username + ",Toy:" + toy.toString());
		Person person = new Person();
		person.createPerson(username);
		System.out.println("自動生成Person:" + person.toString());
		person.setToy(toy);
		System.out.println("加入Toy的Person:" + person.toString());
		return person;
	}
}
    

?

4.其他參數類

Person:

      package net.hello.soap;

import java.io.Serializable;
import java.util.Arrays;
import java.util.Date;

public class Person implements Serializable {

	private static final long serialVersionUID = -4109457804756865917L;
	private String name;
	private int xynum;
	private Date birthday;
	private String[] aihao;
	private static long index = 1;
	private Toy toy;

	public void createPerson(String name) {
		if (name != null && !name.trim().equals("")) {
			this.name = name.trim();
		} else {
			this.name = "Person" + index++;
		}

		birthday = new Date();

		xynum = Math.round(index);

		aihao = new String[] { "aihao1", "aihao2", "aihao3", "愛好4", "愛好5" };

	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getXynum() {
		return xynum;
	}

	public void setXynum(int xynum) {
		this.xynum = xynum;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public String[] getAihao() {
		return aihao;
	}

	public void setAihao(String[] aihao) {
		this.aihao = aihao;
	}

	public static long getIndex() {
		return index;
	}

	public static void setIndex(long index) {
		Person.index = index;
	}

	public Toy getToy() {
		return toy;
	}

	public void setToy(Toy toy) {
		this.toy = toy;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", xynum=" + xynum + ", birthday=" + birthday + ", aihao=" + Arrays.toString(aihao) + ", toy=" + toy + "]";
	}

}

    

?

Toy:

      package net.hello.soap;

import java.io.Serializable;

public class Toy implements Serializable {

	private static final long serialVersionUID = -724430347070233459L;
	private String name;
	private int age;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "Toy [name=" + name + ", age=" + age + "]";
	}

}

    

?

5.WEB-INF下創建server-config.wsdd

      <?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
	xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler"
	xmlns="http://xml.apache.org/axis/wsdd/">
	<globalConfiguration name="defaultClientConfig">
		<requestFlow name="RequestFlow1" type="">
			<handler name="Handler1" type="java:org.apache.axis.handlers.JWSHandler">
				<parameter name="scope" value="session" />
			</handler>
			<handler name="Handler2" type="java:org.apache.axis.handlers.JWSHandler">
				<parameter name="scope" value="request" />
				<parameter name="extension" value=".jwr" />
			</handler>
		</requestFlow>
	</globalConfiguration>
	<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" />
	<handler name="LocalResponder"
		type="java:org.apache.axis.transport.local.LocalResponder" />
	<handler name="Authenticate"
		type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />
	<transport name="http" type="">
		<requestFlow name="RequestFlow1" type="">
			<handler name="Handler1" type="URLMapper" />
			<handler name="Handler2"
				type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />
		</requestFlow>
	</transport>
	<transport name="local" type="">
		<responseFlow name="ResponseFlow1" type="">
			<handler name="Handler1" type="LocalResponder" />
		</responseFlow>
	</transport>
	<service name="AdminService" type="" provider="java:MSG">
		<parameter name="allowedMethods" value="AdminService" />
		<parameter name="enableRemoteAdmin" value="false" />
		<parameter name="className" value="org.apache.axis.utils.Admin" />
		<namespace>http://xml.apache.org/axis/wsdd/</namespace>
	</service>
	<service name="Version" type="" provider="java:RPC">
		<parameter name="allowedMethods" value="getVersion" />
		<parameter name="className" value="org.apache.axis.Version" />
	</service>
	<service name="helloService" provider="java:RPC">
		<parameter name="className" value="net.hello.soap.HelloService" />
		<parameter name="allowedMethods" value="sayHello" />
		<typeMapping xmlns:ns="urn:Toy" qname="ns:Toy"
			type="java:net.hello.soap.Toy" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
			deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
			encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
		<typeMapping xmlns:ns="urn:Person" qname="ns:Person"
			type="java:net.hello.soap.Person" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
			deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
			encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
	</service>
</deployment>
    

?

6.客戶端

?

      package net.hello.soap.test;

import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;

import net.hello.soap.Toy;
import net.hello.soap.Person;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

public class Test {

	public static void main(String[] args) {
		try {
			String username = "Guest";

			String url = "http://localhost:8099/hellonet/services/helloService";
			Service service = new Service();

			Toy toy = new Toy();
			toy.setName("Toy1");
			toy.setAge(1);

			Call call = (Call) service.createCall();
			call.setTargetEndpointAddress(new URL(url));
			call.setOperationName(new QName("helloService", "sayHello"));

			QName toyQn = new QName("ns:Toy");
			QName personQn = new QName("ns:Person");
			call.registerTypeMapping(Person.class,
					personQn, // typeMapping注冊,包含序列化和反序列化的操作
					new org.apache.axis.encoding.ser.BeanSerializerFactory(Person.class, personQn),
					new org.apache.axis.encoding.ser.BeanDeserializerFactory(Person.class, personQn));
			call.registerTypeMapping(Toy.class,
					toyQn, // typeMapping注冊,包含序列化和反序列化的操作
					new org.apache.axis.encoding.ser.BeanSerializerFactory(Toy.class, toyQn),
					new org.apache.axis.encoding.ser.BeanDeserializerFactory(Toy.class, toyQn));

			call.addParameter("username", XMLType.XSD_STRING, ParameterMode.IN);
			call.addParameter("toy2", toyQn, ParameterMode.IN);
			call.setReturnType(personQn, Person.class);

			Person person = (Person) call.invoke(new Object[] { username, toy });

			System.out.println(person);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}

    

?

7.數組這樣寫

WSDD文件中:

      <typeMapping xmlns:ns="urn:array" qname="ns:array"
			type="java:test.Person[]" 
			serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
			deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
			encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
    

?

客戶端:

      QName arrQn = new QName("ns:array");
call.registerTypeMapping(Person[].class, arrQn, 
				new org.apache.axis.encoding.ser.ArraySerializerFactory(Person[].class, arrQn),
				new org.apache.axis.encoding.ser.ArrayDeserializerFactory(arrQn));
    

?

8.運行輸出

?運行服務器,訪問

http://localhost:8099/hellonet/servlet/AxisServlet/ ,頁面顯示:


Java soap axis使用
?

訪問: http://localhost:8099/hellonet/services/helloService?wsdl ,頁面顯示:

      <wsdl:definitions targetNamespace="http://localhost:8099/hellonet/services/helloService"><!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)--><wsdl:types><schema targetNamespace="urn:Toy"><import namespace="http://localhost:8099/hellonet/services/helloService"/><import namespace="urn:Person"/><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="Toy"><sequence><element name="age" type="xsd:int"/><element name="name" nillable="true" type="soapenc:string"/></sequence></complexType></schema><schema targetNamespace="http://localhost:8099/hellonet/services/helloService"><import namespace="urn:Toy"/><import namespace="urn:Person"/><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="ArrayOf_soapenc_string"><complexContent><restriction base="soapenc:Array"><attribute ref="soapenc:arrayType" wsdl:arrayType="soapenc:string[]"/></restriction></complexContent></complexType></schema><schema targetNamespace="urn:Person"><import namespace="urn:Toy"/><import namespace="http://localhost:8099/hellonet/services/helloService"/><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="Person"><sequence><element name="aihao" nillable="true" type="impl:ArrayOf_soapenc_string"/><element name="birthday" nillable="true" type="xsd:dateTime"/><element name="name" nillable="true" type="soapenc:string"/><element name="toy" nillable="true" type="tns1:Toy"/><element name="xynum" type="xsd:int"/></sequence></complexType></schema></wsdl:types><wsdl:message name="sayHelloResponse"><wsdl:part name="sayHelloReturn" type="tns2:Person">

      </wsdl:part></wsdl:message><wsdl:message name="sayHelloRequest"><wsdl:part name="username" type="soapenc:string">

      </wsdl:part><wsdl:part name="toy" type="tns1:Toy">

      </wsdl:part></wsdl:message><wsdl:portType name="HelloService"><wsdl:operation name="sayHello" parameterOrder="username toy"><wsdl:input message="impl:sayHelloRequest" name="sayHelloRequest">

       </wsdl:input><wsdl:output message="impl:sayHelloResponse" name="sayHelloResponse">

       </wsdl:output></wsdl:operation></wsdl:portType><wsdl:binding name="helloServiceSoapBinding" type="impl:HelloService"><wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="sayHello"><wsdlsoap:operation soapAction=""/><wsdl:input name="sayHelloRequest"><wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.hello.net" use="encoded"/></wsdl:input><wsdl:output name="sayHelloResponse"><wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8099/hellonet/services/helloService" use="encoded"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="HelloServiceService"><wsdl:port binding="impl:helloServiceSoapBinding" name="helloService"><wsdlsoap:address location="http://localhost:8099/hellonet/services/helloService"/></wsdl:port></wsdl:service></wsdl:definitions>
    

?

運行客戶端:

客戶端輸出:

Person [name=Guest, xynum=1, birthday=Mon Jul 28 14:41:13 CST 2014, aihao=[aihao1, aihao2, aihao3, 愛好4, 愛好5], toy=Toy [name=Toy1, age=1]]
服務端輸出:

接收:Guest,Toy:Toy [name=Toy1, age=1]
自動生成Person:Person [name=Guest, xynum=1, birthday=Mon Jul 28 14:41:13 CST 2014, aihao=[aihao1, aihao2, aihao3, 愛好4, 愛好5], toy=null]
加入Toy的Person:Person [name=Guest, xynum=1, birthday=Mon Jul 28 14:41:13 CST 2014, aihao=[aihao1, aihao2, aihao3, 愛好4, 愛好5], toy=Toy [name=Toy1, age=1]]

?

?

Java soap axis使用


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 97在线碰碰观看免费高清 | 色五月情| 操操片| 久久入 | 99久精品| 久久九九有精品国产56 | 日本不卡在线观看 | 精品在线一区二区 | 国产精品一级毛片不收费 | 亚洲黄色在线视频 | 在线视频亚洲一区 | 国产一区亚洲欧美成人 | 亚洲欧美精品国产一区色综合 | 亚洲第一页在线播放 | 中文字幕精品视频在线观 | 亚洲综合国产一区二区三区 | 婷婷亚洲激情 | 特级黄色毛片 | 欧美成人三级一区二区在线观看 | 高清国产在线 | 亚洲成在人天堂一区二区 | 中文字幕第66页永久乱码 | a级片网址 | 国产99视频精品草莓免视看 | a网站在线观看 | 国产一区二区免费播放 | 日本在线色 | 在线精品视频成人网 | 日本高清h色视频在线观看 日本高清不卡二区 | 成年女人永久免费观看片 | 中国一级毛片欧美一级毛片 | 久久国产麻豆 | 欧美成人性色 | 一级免费大片 | 亚洲一区二区三区在线视频 | 国产高清一级毛片在线不卡 | 国产网红自拍 | 四虎影视最新网址 | 亚洲精品久久久久中文字幕一区 | 欧美伊人久久大香线蕉综合69 | 中国第一毛片 |