扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
<target name="genstaticstub" description="生成静态桩,供静态的调用服务">
<echo message="gen statics tub" />
<wscompile client="true" features="wsi,documentliteral" keep="true" base="." sourceBase="." xPrintStackTrace="true" config="config-wsdl.xml" verbose="true">
<classpath refid="compile.classpath" />
</wscompile>
</target>
<target name="generate-dynamic-interface" description="根据WSDL文件生成SEI及其它材料,供动态调用 norpcstructures">
<echo message="generate dynamic interface" />
<wscompile import="true" keep="false" features="wsi,documentliteral" base="./dynmicstub" sourceBase="./dynmicstub" xPrintStackTrace="true" config="config-wsdl.xml" verbose="true">
<classpath refid="compile.classpath" />
</wscompile>
</target>
<target depends="prepare" name="wsi server service" description="Generating WS-I Compliant Service Files with wscompile 根据WSDL文件生成SEI及其它材料,供动态调用 norpcstructures">
<echo message="generate-server ,generate wsi server service" />
<wscompile import="true" define="false" keep="false" features="wsi,documentliteral" base="${wsi.server.dir}" sourceBase="${wsi.server.dir}" xPrintStackTrace="true" model="model.xml.gz" config=".\conf\config-server.xml" verbose="true">
<classpath refid="compile.classpath" />
</wscompile>
</target>
<target depends="prepare" name="wsi client service" description="Generating WS-I Compliant Service Files with wscompile 根据WSDL文件生成SEI及其它材料,供动态调用 norpcstructures">
<echo message="generate wsi client service" />
<wscompile client="true" keep="true" features="wsi,documentliteral" base="${wsi.client.dir}" sourceBase="${wsi.client.dir}" xPrintStackTrace="true" config=".\conf\config-client.xml" verbose="true">
<classpath refid="compile.classpath" />
</wscompile>
</target>
</project>
在这个构建文件中的build任务中, features的值指定为"wsi,documentliteral",这个任务需要的config-interface.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
<service name="BinaryService" targetNamespace="urn:binary"
typeNamespace="urn:binary" packageName="com.binary">
<interface name="com.bin.IImage"
servantName="com.bin.ImageImpl" />
</service>
</configuration>
这个文件的需要的com.bin.IImage SEI接口文件及其实现文件com.bin.ImageImpl:
public interface IImage extends Remote {
//public DataHandler fetchImg(String sn) throws RemoteException;
//public DataHandler[] fetchImgs(String[] sn) throws RemoteException;
public SOAPMessage construcMsg(String[] fn) throws RemoteException;
public byte[] fetchImage(String sn) throws RemoteException;
public FileInfo[] fetchFileList() throws java.rmi.RemoteException;
public FileInfo getFileList(String fn) throws java.rmi.RemoteException;
}
DataHandler,ArrayList属于java的类当然不允许出现在接口中了,因为C#不认识这些类,FileInfo值类型类倒支持,因为这个类没有方法,而且数据类型都是可以用SOAP来表示的,C#是可以理解的.
实现文件,注意实现的方法是空方法.
public class ImageImpl implements IImage {
public SOAPMessage construcMsg(String[] fn) throws RemoteException {
return null;
}
public byte[] fetchImage(String sn) throws RemoteException{
return null;
}
public FileInfo[] fetchFileList() throws java.rmi.RemoteException{
return null;
}
public FileInfo getFileList(String fn) throws RemoteException {
return null;
}
}
到这里,为互操作所做的修改只是在 features的值指定为"wsi,documentliteral",其它地方没有修改包括config-interface.xml接口配置文件.通过执行这个任务,可以得到我们想要的BinaryService.wsdl文件.位于nonclass文件夹中,把它移动到conf中.
(二) 构造Web服务
在这个conf文件夹中除了有BinaryService.wsdl外,还有两个文件:
config-client.xml,用来根据WSDL文件生成客户端访问服务所需要的制品.
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
<wsdl
location="http://localhost:8080/netservice/binary?WSDL"
packageName="wsidotnet" />
</configuration>
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者