下面以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相比差别比较大,使用方法也不相同。