下面以windows10下安装jdk1.8的开发环境以例进行介绍。实现的功能是根据wsdl文件或者地址自动生成代码,步骤如下:

(1)首先下载axis1.4

可以从官网下载,参考这里: 官方版本下载

(2)准备接口资源

把axis1.4解压放到任意目录下,准备服务地址或者文件,我们可以把wdsl文件保存到本地,或者直接使用url也可以。

(3)编写脚本即 bat文件

我们可以把使用的命令行放到bat文件中,内容如下:

set Axis_Lib=D:\JavaCode\axis-1_4\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=D:\JavaCode\axiscode1.4
set Package=com.hy.jwork.axis
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% D:\JavaCode\TmriOutNewAccessEx.xml

解释如下: Axis_Lib 是我们axis1.4的解压目录, Output_Path是我们的代码到的目录, Package是我们的包名。D:\JavaCode\TmriOutNewAccessEx.xml 是我们的wsdl的文件,这里也可以直接使用url地址。

(4)右键以管理员身份运行脚本

然后在我们的设置目录就能看到自动生成的代码(包含服务端和客户端)如下:

TmriOutNewAccessEx.java
TmriOutNewAccessExProviderService.java
TmriOutNewAccessExProviderServiceLocator.java
TmriOutNewAccessExProviderServiceSoapBindingStub.java

(5)java中直接调用远程服务的代码下:

String url = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";//真实的服务接口地址
java.net.URL endpoint = new java.net.URL(url);
TmriOutNewAccessExProviderServiceSoapBindingStub stub =(TmriOutNewAccessExProviderServiceSoapBindingStub) new TmriOutNewAccessExProviderServiceLocator().getTmriOutNewAccessExProviderPort(endpoint);
//下面可以直接调用方法
stub.Methd(......)


(6)发布成服务端

发布成服务端比较容易,我们需要重新写一个类,然后实现接口就可以了。例如:TmriOutNewAccessExImpl

public class TmriOutNewAccessExImpl implements TmriOutNewAccessEx{
	@Override
	public String Methd(String arg1,……) throws RemoteException {
	//里面是代码实现
		return “”;
	}
//下面接口需要重新写
……

}

最后使用rpc指定一下就可以了

<service name="TmriOutNewAccessEx" provider="java:RPC">
  <parameter name="className" value="com.hy.jwork.endpoint.TmriOutNewAccessExImpl"/>
  <parameter name="allowedMethods" value="*"/>
</service>

本来想上传示例代码,鉴于axis1.4目前比较少用,就省去了,可以参见后续我写的axis2的生成和源码下载。
axis2的结构和axis1.4相比差别比较大,使用方法也不相同。