?

package ?com.timing.env.client.axis;

/**
?*?
@author ?崔宏
?*?
@version ?2006-5-15?10:48:55
?
*/


import ?com.timing.env.client.proxy.AxisProxy;
import ?com.timing.env.bean.Item;

import ?javax.xml.namespace.QName;
import ?javax.xml.rpc.encoding.TypeMapping;
import ?javax.xml.rpc.encoding.TypeMappingRegistry;
import ?javax.xml.rpc.ServiceFactory;
import ?javax.xml.rpc.Service;


import ?java.net.URL;

import ?org.apache.axis.encoding.ser.BeanSerializerFactory;
import ?org.apache.axis.encoding.ser.BeanDeserializerFactory;


public ? class ?AxisClient? {
????
public ? static ?? void ?doService()? {
????????
try ? {
????????????String?wsdlUrl?
=
????????????????????
" http://localhost:8080/axis/services/AxisService?wsdl " ;
????????????String?nameSpaceUri?
=
????????????????????
" http://localhost:8080/axis/services/AxisService " ;
????????????String?serviceName?
= ? " AxisServiceService " ;
????????????String?portName?
= ? " AxisService " ;

????????????ServiceFactory?serviceFactory?
= ServiceFactory.newInstance();


????????????Service?afService?
=
????????????????????serviceFactory.createService(
new ?URL(wsdlUrl),
????????????????????????????
new ?QName(nameSpaceUri,?serviceName));
????????????TypeMappingRegistry?typeMappingRegistry
= ?afService.getTypeMappingRegistry();
????????????TypeMapping?map
= typeMappingRegistry.getDefaultTypeMapping();
????????????QName?qName
= new ?QName(nameSpaceUri, " Item " );
????????????Class?c
= Class.forName( " com.timing.env.bean.Item " );
????????????map.register(c,qName,
new ?BeanSerializerFactory(c,qName), new ?BeanDeserializerFactory(c,qName));
????????????AxisProxy?proxy?
= ?(AxisProxy)
????????????????????afService.getPort(
new ?QName(
????????????????????????????nameSpaceUri,?portName),
????????????????????????????AxisProxy.
class );
// ???????????serviceFactory.
????????????System.out.println( " proxy= " + proxy == null );
????????????Item?item
= proxy.doService( new ?Item());
????????????System.out.println(item.getName());
????????}
? catch ?(Exception?ex)? {
????????????ex.printStackTrace();
????????}


????}


????
public ? static ? void ?main(String[]?args)? {
????????AxisClient.doService();
????}


?

package ?com.timing.env.client.proxy;

import ?com.timing.common.TransfersData;
import ?com.timing.env.bean.Item;

import ?java.rmi.Remote;
import ?java.rmi.RemoteException;

/**
?*?
@author ?崔宏
?*?
@version ?2006-5-15?10:42:14
?
*/

public ? interface ?AxisProxy? extends ??Remote? {
??????
public ?Item?doService(Item?item)? throws ?RemoteException;
}

package ?com.timing.env.webservice.axis;

import ?com.timing.common.TransfersData;
import ?com.timing.env.bean.Item;

/**
?*?
@author ?崔宏
?*?
@version ?2006-5-12?15:44:03
?
*/

public ? class ?AxisService? {
????
public ?Item?doService(Item?_item?) {
????????System.out.println(
" we?do?axis " );
?????????
????????Item?item
= ? new ?Item();
????????item.setName(
" Test?OK " );
????????
return ?item;
????}

}


<? 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 = " adminPassword " ?value = " admin " />
??
< parameter?name = " attachments.Directory " ?value = " E:\Tomcat\webapps\axis\WEB-INF\attachments " />
??
< 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 " />
??
< requestFlow >
???
< handler?type = " java:org.apache.axis.handlers.JWSHandler " >
????
< parameter?name = " scope " ?value = " session " />
???
</ handler >
???
< handler?type = " java:org.apache.axis.handlers.JWSHandler " >
????
< parameter?name = " scope " ?value = " request " />
????
< parameter?name = " extension " ?value = " .jwr " />
???
</ handler >
??
</ requestFlow >
?
</ globalConfiguration >
?
< handler?name = " LocalResponder " ?type = " java:org.apache.axis.transport.local.LocalResponder " />
?
< handler?name = " URLMapper " ?type = " java:org.apache.axis.handlers.http.URLMapper " />
?
< handler?name = " Authenticate " ?type = " java:org.apache.axis.handlers.SimpleAuthenticationHandler " />
?
< service?name = " AdminService " ?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 " ?provider = " java:RPC " >
??
< parameter?name = " allowedMethods " ?value = " getVersion " />
??
< parameter?name = " className " ?value = " org.apache.axis.Version " />
?
</ service >
?
< service?name = " AxisService " ?provider = " java:RPC " >
??
< parameter?name = " allowedMethods " ?value = " * " />
??
< parameter?name = " className " ?value = " com.timing.env.webservice.axis.AxisService " />
??
< typeMapping?deserializer = " org.apache.axis.encoding.ser.BeanDeserializerFactory " ?
????encodingStyle
= " http://schemas.xmlsoap.org/soap/encoding/ " ?
????qname
= " ns1:Item " ?
????serializer
= " org.apache.axis.encoding.ser.BeanSerializerFactory " ?
????type
= " java:com.timing.env.bean.Item "
????xmlns:ns1
= " http://localhost:8080/axis/services/AxisService " />
???
< typeMapping?deserializer = " org.apache.axis.encoding.ser.BeanDeserializerFactory " ?
????encodingStyle
= " http://schemas.xmlsoap.org/soap/encoding/ " ?
????qname
= " ns1:TransfersData " ?
????serializer
= " org.apache.axis.encoding.ser.BeanSerializerFactory " ?
????type
= " java:com.timing.common.TransfersData "
????xmlns:ns1
= " http://localhost:8080/axis/services/AxisService " /> ????
?
</ service >
?
< transport?name = " http " >
??
< requestFlow >
???
< handler?type = " URLMapper " />
???
< handler?type = " java:org.apache.axis.handlers.http.HTTPAuthHandler " />
??
</ requestFlow >
??
< parameter?name = " qs:list " ?value = " org.apache.axis.transport.http.QSListHandler " />
??
< parameter?name = " qs:wsdl " ?value = " org.apache.axis.transport.http.QSWSDLHandler " />
??
< parameter?name = " qs.list " ?value = " org.apache.axis.transport.http.QSListHandler " />
??
< parameter?name = " qs.method " ?value = " org.apache.axis.transport.http.QSMethodHandler " />
??
< parameter?name = " qs:method " ?value = " org.apache.axis.transport.http.QSMethodHandler " />
??
< parameter?name = " qs.wsdl " ?value = " org.apache.axis.transport.http.QSWSDLHandler " />
?
</ transport >
?
< transport?name = " local " >
??
< responseFlow >
???
< handler?type = " LocalResponder " />
??
</ responseFlow >
?
</ transport >
</ deployment >