使用axis自动生成webservice客户端代码

发布时间:2012-09-04   来源:文档文库   
字号:
利用AXIS生成客户端文件,使得开发webservice更加简单,以下是我的个人代码, 工具:
Myeclipse7.0axis1.4tomcat5.5jdk1.5 一、 下载axisjar包,我的是axis-bin-1_4.zip包,解压后有axislib目录,一会儿我们要用,
二、 myeclip se中创建自己的webservice工程,这个在的文库里有,
三、 C盘目录下创建一个批处理文件,我的名字是wsdltojava.bat,内容如下:
set Axis_Lib=E:\jar\axis\asixTool\axis-bin-1_4\axis-1_4\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% set Axis_Servlet=http://localhost:8090/myAxis/services/HelloWorld?wsdl
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -u %Axis_Servlet% 备注:红色字体我的axis的目录,也就是刚才我解压出来的axis 蓝色是我的webservice的访问地址,其他的不用处理, 然后双击这个文件,产生以下几个文件: 1、目录是:C:\localhost\myAxis\services\HelloWorld 2

四、
将这四个文件拷贝到你的客户端,创建客户端

运行即可

附录代码: 服务端
HelloWorld.java

package webservice.axis.test;
public class HelloWorld { public String hello({ return "Hello "+"aaaaaaaaaaaaaaaaaa";
}
}

客户端(通过刚才命令生成的四个文件) HelloWorld.java /** * HelloWorld.java
*
* This file was auto-generated from WSDL * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT WSDL2Java emitter. */
package webservice.axis.test.batClient;
public interface HelloWorld extends java.rmi.Remote { public java.lang.String hello( throws java.rmi.RemoteException; }

HelloWorldService.java
/** * HelloWorldService.java
*
* This file was auto-generated from WSDL * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT WSDL2Java emitter. */
package webservice.axis.test.batClient;
public interface HelloWorldService extends javax.xml.rpc.Service { public java.lang.String getHelloWorldAddress(;
public webservice.axis.test.batClient.HelloWorld getHelloWorld( throws
javax.xml.rpc.ServiceException;
public webservice.axis.test.batClient.HelloWorld getHelloWorld(java.net.URL portAddress throws javax.xml.rpc.ServiceException; }

HelloWorldServiceLocator.java /** * HelloWorldServiceLocator.java
*
* This file was auto-generated from WSDL * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT WSDL2Java emitter. */
package webservice.axis.test.batClient;
public class HelloWorldServiceLocator extends org.apache.axis.client.Service implements webservice.axis.test.batClient.HelloWorldService {
public HelloWorldServiceLocator( { }

public HelloWorldServiceLocator(org.apache.axis.EngineConfiguration config { super(config; }
public HelloWorldServiceLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName throws javax.xml.rpc.ServiceException { super(wsdlLoc, sName; }
// Use to get a proxy class for HelloWorld private java.lang.String HelloWorld_address = "http://localhost:8090/myAxis/services/HelloWorld";
public java.lang.String getHelloWorldAddress( { return HelloWorld_address; }

// The WSDD service name defaults to the port name.
private java.lang.String HelloWorldWSDDServiceName = "HelloWorld";
public java.lang.String getHelloWorldWSDDServiceName( { return HelloWorldWSDDServiceName; }
public void setHelloWorldWSDDServiceName(java.lang.String name { HelloWorldWSDDServiceName = name; }
public webservice.axis.test.batClient.HelloWorld getHelloWorld( throws javax.xml.rpc.ServiceException { java.net.URL endpoint;
try { endpoint = new java.net.URL(HelloWorld_address;
}
catch (java.net.MalformedURLException e { throw new javax.xml.rpc.ServiceException(e;
} return getHelloWorld(endpoint; }
public webservice.axis.test.batClient.HelloWorld getHelloWorld(java.net.URL portAddress throws javax.xml.rpc.ServiceException {
try { webservice.axis.test.batClient.HelloWorldSoapBindingStub _stub = new webservice.axis.test.batClient.HelloWorldSoapBindingStub(portAddress, this; _stub.setPortName(getHelloWorldWSDDServiceName(; return _stub;
} catch (org.apache.axis.AxisFault e { return null; } }
public void setHelloWorldEndpointAddress(java.lang.String address { HelloWorld_address = address; }

/** * For the given interface, get the stub implementation. * If this service has no port for the given interface, * then ServiceException is thrown.
*/
public java.rmi.Remote getPort(Class serviceEndpointInterface throws javax.xml.rpc.ServiceException { try {
if (webservice.axis.test.batClient.HelloWorld.class.isAssignableFrom(serviceEndpointInterface { webservice.axis.test.batClient.HelloWorldSoapBindingStub _stub = new webservice.axis.test.batClient.HelloWorldSoapBindingStub(new java.net.URL(HelloWorld_address, this; _stub.setPortName(getHelloWorldWSDDServiceName(; return _stub; }
}
catch (java.lang.Throwable t { throw new javax.xml.rpc.ServiceException(t;
} throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName(; }

/** * For the given interface, get the stub implementation. * If this service has no port for the given interface, * then ServiceException is thrown.
*/ public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface throws javax.xml.rpc.ServiceException {
if (portName == null { return getPort(serviceEndpointInterface;
} java.lang.String inputPortName = portName.getLocalPart(; if ("HelloWorld".equals(inputPortName { return getHelloWorld(;
} else
{ java.rmi.Remote _stub = getPort(serviceEndpointInterface; ((org.apache.axis.client.Stub _stub.setPortName(portName; return _stub; } }
public javax.xml.namespace.QName getServiceName( { return new javax.xml.namespace.QName("http://localhost:8090/myAxis/services/HelloWorld", "HelloWorldService";
}
private java.util.HashSet ports = null;
public java.util.Iterator getPorts( {
if (ports == null { ports = new java.util.HashSet(;
ports.add(new javax.xml.namespace.QName("http://localhost:8090/myAxis/services/HelloWorld", "HelloWorld";
} return ports.iterator(; }

/** * Set the endpoint address for the specified port name.
*/ public void setEndpointAddress(java.lang.String portName, java.lang.String address throws javax.xml.rpc.ServiceException {

if ("HelloWorld".equals(portName { setHelloWorldEndpointAddress(address; } else
{ // Unknown Port Name throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName; } }

/** * Set the endpoint address for the specified port name.
*/ public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address throws javax.xml.rpc.ServiceException { setEndpointAddress(portName.getLocalPart(, address; } }

HelloWorldSoapBindingStub.java

/** * HelloWorldSoapBindingStub.java
*
* This file was auto-generated from WSDL * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT WSDL2Java emitter. */
package webservice.axis.test.batClient;
public class HelloWorldSoapBindingStub extends org.apache.axis.client.Stub implements webservice.axis.test.batClient.HelloWorld { private java.util.Vector cachedSerClasses = new java.util.Vector(; private java.util.Vector cachedSerQNames = new java.util.Vector(; private java.util.Vector cachedSerFactories = new java.util.Vector(; private java.util.Vector cachedDeserFactories = new java.util.Vector(;
static org.apache.axis.description.OperationDesc [] _operations;

static { _operations = new org.apache.axis.description.OperationDesc[1]; _initOperationDesc1(; }

private static void _initOperationDesc1({ org.apache.axis.description.OperationDesc oper;
org.apache.axis.description.ParameterDesc param; oper = new org.apache.axis.description.OperationDesc(; oper.setName("hello";
oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string";
oper.setReturnClass(java.lang.String.class; oper.setReturnQName(new javax.xml.namespace.QName("", "helloReturn"; oper.setStyle(org.apache.axis.constants.Style.RPC; oper.setUse(org.apache.axis.constants.Use.ENCODED; _operations[0] = oper;
}
public HelloWorldSoapBindingStub( throws org.apache.axis.AxisFault { this(null; }

public HelloWorldSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service
throws org.apache.axis.AxisFault {
this(service; super.cachedEndpoint = endpointURL; }
public HelloWorldSoapBindingStub(javax.xml.rpc.Service service throws org.apache.axis.AxisFault {
if (service == null { super.service = new org.apache.axis.client.Service(;
} else { super.service = service;
} ((org.apache.axis.client.Servicesuper.service.setTypeMappingVersion("1.2"; }
protected org.apache.axis.client.Call createCall( throws java.rmi.RemoteException {
try { org.apache.axis.client.Call _call = super._createCall(;
if (super.maintainSessionSet { _call.setMaintainSession(super.maintainSession;
}
if (super.cachedUsername != null { _call.setUsername(super.cachedUsername;
}
if (super.cachedPassword != null { _call.setPassword(super.cachedPassword;
}
if (super.cachedEndpoint != null { _call.setTargetEndpointAddress(super.cachedEndpoint;
}
if (super.cachedTimeout != null { _call.setTimeout(super.cachedTimeout;
}
if (super.cachedPortName != null { _call.setPortName(super.cachedPortName;
} java.util.Enumeration keys = super.cachedProperties.keys(;
while (keys.hasMoreElements( { java.lang.String key = (java.lang.String keys.nextElement(; _call.setProperty(key, super.cachedProperties.get(key;
} return _call;
}
catch (java.lang.Throwable _t {
throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t; } }
public java.lang.String hello( throws java.rmi.RemoteException {
if (super.cachedEndpoint == null { throw new org.apache.axis.NoEndPointException(;
} org.apache.axis.client.Call _call = createCall(; _call.setOperation(_operations[0]; _call.setUseSOAPAction(true;
_call.setSOAPActionURI(""; _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS;
_call.setOperationName(new javax.xml.namespace.QName("http://test.axis.webservice", "hello";
setRequestHeaders(_call;
setAttachments(_call; try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {};
if (_resp instanceof java.rmi.RemoteException { throw (java.rmi.RemoteException_resp; }
else { extractAttachments(_call;
try {
return (java.lang.String _resp; } catch (java.lang.Exception _exception { return (java.lang.String org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class; }
} } catch (org.apache.axis.AxisFault axisFaultException { throw axisFaultException; } } }

最后要感谢网上资源

本文来源:https://www.2haoxitong.net/k/doc/ab0a8b2dcfc789eb172dc814.html

《使用axis自动生成webservice客户端代码.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式