根据wsdl的url,使用axis1.4生成客户端,并且对webservice进行调用
 
1、到www.apache.org上去下载axis-bin-1_4.zip,如要关联源代码就把axis-src-1_4.zip也下载下来。
2、建一个java项目,导入axis-bin-1_4.zip下的lib文件下的所有jar包
3、右键项目/Run As/Run Configurations...
4、然后在Main标签下选择对应的Project以及Main class: org.apache.axis.wsdl.WSDL2Java
5、然后在Arguments标签下的Program arguments:下输入-o Client -d Session -S trueD:\project\FIIS_CRJ_AXIS\dest\test.wsdl
   其中D:\project\FIIS_CRJ_AXIS\dest\test.wsdl也可以是具体的wsdl路径http://192.168.1.10:7001/test/test?WSDL
6、最后点Run运行————这时如果报缺少jar包,可以找spring的依赖包,里面有很多,这里还要加入com.springsource.javax.activation-1.1.0.jar和com.springsource.javax.mail-1.4.0.jar。
7、执行上面的操作后会在我们的项目下生成一个Client文件,文件下的内容就是调用webservice的客户端代码
 
使用:都会有一个本地类   Locator 以及 Soap,创建出这两个就可以调用对应的webservice方法了
例:
TraditionalSimplifiedWebServiceLocator locator = new TraditionalSimplifiedWebServiceLocator();
TraditionalSimplifiedWebServiceSoap stub = (TraditionalSimplifiedWebServiceSoap)locator.getTraditionalSimplifiedWebServiceSoap();
System.out.println(stub.toTraditionalChinese("张三"));
还要一种情况:调用的webservice前要登陆,这种情况怎么处理?
1、先登陆得到sessionId
2、把sessionId设置到header里,找到   Stub类下的createCall()方法
protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
        try {
            org.apache.axis.client.Call _call = super._createCall();
            
           ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //设置头信息
            SOAPHeaderElement hElement = new SOAPHeaderElement(new QName("sessionInfo"));
            SOAPElement sid = hElement.addChildElement("sessionId");
            sid.addTextNode(Remote_SessionInfo.getSessionId());
            _call.addHeader(hElement);
这样就可以调用webservice了。
3

 生成客户端后,直接放在自己的工程里面,直接就可以调用服务端了:如下代码

public class Test {

public static void main(String args[]){
        String url = "http://localhost:8080/myaxis1/services/***Service?wsdl";
        URL serviceUrl;
        try {
            serviceUrl = new URL(url);
            ***ServiceSoapBindingStub    binding = (***ServiceSoapBindingStub) new ***SServiceImplServiceLocator().get***Service(serviceUrl);
        
            UserBean user = new UserBean();
            user.setAreacode("9999");
            user.setCharging("");
            user.setPassword("123456");
            user.setTeam_id(-1);
            user.setUserid("ytest");
            user.setUsertype(1);
            
            OrderBean orderbean = new OrderBean();
            orderbean.setProductid("001");
            OrderBean[] order =new OrderBean[]{orderbean};
            
            
            ResultBean bean = binding.createUser(user, order, "20130408164312");
            
            System.out.println("返回码:" + bean.getReturnCode()+" 返回消息:"+bean.getReturnMessage());
            
        } catch (Exception e) {
            e.printStackTrace();
        }       
    }
}

Webservice之axis的更多相关文章

  1. Java调用WebService之Axis实现

    import org.apache.axis.client.Call; import org.apache.axis.client.Service; /** * @ClassName: TestAxi ...

  2. Webservice接口和Http接口

    WebService又是一种高级应用,与之前学习的Struts.Spring.Hibernate等框架不同.WebService是面向服务的架构(SOA),看起来像是比SSH框架要大.那么它到底是做什 ...

  3. CXF创建webservice客户端和服务端

    转 一.CXF的介绍 Apache CXF是一个开源的WebService框架,CXF大大简化了Webservice的创建,同时它继承了XFire的传统,一样可以和spring天然的进行无缝的集成.C ...

  4. Java调用.NET webservice方法的几种方式

    最近做项目,涉及到web-service调用,现学了一个星期,现简单的做一个小结.下面实现的是对传喜物流系统(http://vip.cxcod.com/PodApi/GetPodStr.asmx?ws ...

  5. Web服务cxf框架发布2

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任. 作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317/ ...

  6. RPC框架之RMI

     一:RPC 远程过程调用 RPC(Remote Procedure Call Protocol)远程过程调用协议,通过网络从远程计算机上请求调用某种服务. 一次RPC调用的过程大概有10步: 1.执 ...

  7. 【知识积累】服务器端获取客户端的IP地址(当客户端调用由Axis开发的WebService)

    一.前言 由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户端采用Axis开发的WebServic ...

  8. 使用axis调用WebService服务端

    由于项目中要调用其他公司的接口,研究了下axis调用webService这种方式,现将代码贴出,以备以后查阅: package com.xbq; import javax.xml.namespace. ...

  9. spring集成环境下的axis webservice的发布,调试

    在spring集成的环境下,无论你是ssh集成,还是ssi集成的情况下,发布webservice往往在调用的时候会出错. 特别是,如果你是这个方式: 将webservice打aar包,放到tomcat ...

随机推荐

  1. ZooKeeper系列(9):ZooKeeper实现分布式Barrier和Queue

    1. 快速开始 1.1概述: Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统,可提供的服务主要有:配置服务.名字服务.分布式同步.组服务等. 1.2 使用常见 1.2.1 统 ...

  2. MapReduce的工作机制

    <Hadoop权威指南>中的MapReduce工作机制和Shuffle: 框架 Hadoop2.x引入了一种新的执行机制MapRedcue 2.这种新的机制建议在Yarn的系统上,目前用于 ...

  3. Android 支付密码输入框,自定义EditText实现密码输入框功能;

    刚撸出来的密码输入框,注释和逻辑看着挺清晰的,一些属性还没有添加,下个博客把属性添加上去: 看一下图: 直接看代码吧! import android.content.Context; import a ...

  4. python开发学习(元组、字符串、列表、字典深入)

    https://www.cnblogs.com/songqingbo/p/5129116.html(转载学习)

  5. 记一次http接口格式摸索

    有一个需求,需要用到内部通讯工具的一个ERP转发接口,虽然有接口文档,但是对中文的编码格式没有提示,中间几经周折,最后才想起来通过F12查看提供的测试接口发送请求时的数据格式来分析,经过解析中文只有被 ...

  6. MySQL----ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

    1.问题描述 在导入同事提供的一个sql文件时候,出现了一个1071错误,总结学习一下: 2.分析问题 错误的字面意思是说mysql字段设置的值太长了,不能大于767个字节,在网上找了一些资料后才知道 ...

  7. datetime模块的简单用法

    import datetime print(datetime.datetime.today()) #2018-08-14 14:18:28.575412 print(datetime.date.tod ...

  8. python中logging模块的一些简单用法

    用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所 ...

  9. mysql 动态拼接表字段,值 mybatis 动态获取表字段

    -- 取表所有字段,自动用逗号分开 select GROUP_CONCAT(DISTINCT COLUMN_NAME) from information_schema.columns where ta ...

  10. uva-10340-水题

    题意:字符串匹配,看样例输入理解题意 直接循环 #include <string> #include<iostream> #include<map> #includ ...