`
wanxiaotao12
  • 浏览: 454690 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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\lib

set 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名,根据需要换成你自己的webapp
			Service 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();
		}
	}
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics