首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Java axis 批量生成客户端程序 其余的WebService 或调用.net的wcf

2012-07-15 
Java axis批量生成客户端程序其他的WebService 或调用.net的wcfJava axis(版本是axis1.4) ? 其他的WebServ

Java axis 批量生成客户端程序 其他的WebService 或调用.net的wcf

Java axis(版本是axis1.4) ? 其他的WebService 或调用.net的wcf? 参考 http://www.cnblogs.com/chrischen662/archive/2010/08/15/1800130.html

前提条件:已经将服务器端的WebService接口写好, 并将WebService服务启动

?

1、编写一个脚本,用来生成一些基本代码。例如编写如下一个脚本,并存为wcf.bat文件:

set Axis_Lib=axis-1_4\libset Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%set Output_Path=.set Package=wcf%Java_Cmd% org.apache.axis.wsdl.WSDL2Java http://localhost:8000/WebWcf/GetAccountService.svc?wsdl -o%Output_Path% -p%Package%

?其中的lib为axis工具包中的lib目录,它包含了需要用到的Jar。在Dos下运行wcf.bat,即在当前目录中创建了目录wcf,并生成了java程序

2、写客户端测试程序:

package wcf;public class ClientTest {   /**    * @param args    */   public static void main(String[] args) {    try {     GetAccountService client = new GetAccountServiceLocator();     Account account = new Account();     account = client.getBasicHttpBinding_IGetAccountService().getAccount("abc");     System.out.println("account="+account.getUserid()+";"+account.getUsername());     System.in.read();    } catch (Exception e) {     System.out.println("Exception : " + e.getMessage());    }   }}

?附加:如果不用这种批量生成文件的方式, 也可以手工写客户端,不过手工这种方式要麻烦的多

public class Test01 {public static void main(String[] args) {try {String endpoint = "http://localhost:8080/WebService/services/HelloWorld?wsdl"; // 指明服务所在位置, system是webapp名,根据需要换成你自己的webappService service = new Service(); //创建一个Service实例,注意是必须的!Call call = (Call) service.createCall(); //创建Call实例,也是必须的!String returnStr = "";call.setTargetEndpointAddress(endpoint); //为Call设置服务的位置call.setOperationName(new QName("sayHello")); //要调用HelloWorld 中的方法名returnStr = (String) call.invoke(new Object[] { "你好," });//传入的参数需要封装到object数组中,返回值可直接获取System.out.println(returnStr); //打印输出结果} catch (Exception ex) {ex.printStackTrace();}}}
?

热点排行