精华内容
下载资源
问答
  • 用到的jar包如下: 代码如下:importjavax.xml.namespace.QName;importorg.apache.axiom.om....importorg.apache.axis2.addressing.EndpointReference;importorg.apache.axis2.client.Options;importorg.apache.axis...

    用到的jar包如下:

    a09da62978e4c029661fc507d967549e.png

    代码如下:

    import javax.xml.namespace.QName;

    import org.apache.axiom.om.OMElement;

    import org.apache.axis2.addressing.EndpointReference;

    import org.apache.axis2.client.Options;

    import org.apache.axis2.rpc.client.RPCServiceClient;

    public class StockQuoteClient {

    public static void main(String[] args) {

    testRPCClient();

    }

    /**

    * 方法一: 应用rpc的方式调用 这种方式就等于远程调用, 即通过url定位告诉远程服务器,告知方法名称,参数等, 调用远程服务,得到结果。 使用

    * org.apache.axis2.rpc.client.RPCServiceClient类调用WebService

    *

    * 【注】:

    *

    * 如果被调用的WebService方法有返回值 应使用 invokeBlocking 方法 该方法有三个参数

    * 第一个参数的类型是QName对象,表示要调用的方法名; 第二个参数表示要调用的WebService方法的参数值,参数类型为Object[];

    * 当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,而要使用new Object[]{}。

    * 第三个参数表示WebService方法的 返回值类型的Class对象,参数类型为Class[]。

    *

    *

    * 如果被调用的WebService方法没有返回值 应使用 invokeRobust 方法

    * 该方法只有两个参数,它们的含义与invokeBlocking方法的前两个参数的含义相同。

    *

    * 在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名, 也就是

    * 元素的targetNamespace属性值。

    *

    */

    public static void testRPCClient() {

    try {

    // axis1 服务端

    String url = "http://localhost:8080/StockQuote/services/StockQuoteServiceSOAP11port?wsdl";

    // 使用RPC方式调用WebService

    RPCServiceClient serviceClient = new RPCServiceClient();

    // 指定调用WebService的URL

    EndpointReference targetEPR = new EndpointReference(url);

    Options options = serviceClient.getOptions();

    // 确定目标服务地址

    options.setTo(targetEPR);

    // 确定调用方法

    options.setAction("urn:sendVideoSubtitle");

    System.out.println("--------------------------------");

    /**

    * 指定要调用的getPrice方法及WSDL文件的命名空间 如果 webservice 服务端由axis2编写 命名空间

    * 不一致导致的问题 org.apache.axis2.AxisFault: java.lang.RuntimeException:

    * Unexpected subelement arg0

    */

    QName qname = new QName("http://webservice.vms.com",

    "StockQuoteServiceSOAP11port");

    // 指定getPrice方法的参数值

    Object[] parameters = new Object[] { "<?xml  version=\"1.0\" encoding=\"UTF-8\"?>12313213133213254544646465465465" };

    // 指定getPrice方法返回值的数据类型的Class对象

    Class[] returnTypes = new Class[] { String.class };

    // 调用方法一 传递参数,调用服务,获取服务返回结果集

    OMElement element = serviceClient.invokeBlocking(qname, parameters);

    // 值得注意的是,返回结果就是一段由OMElement对象封装的xml字符串。

    // 我们可以对之灵活应用,下面我取第一个元素值,并打印之。因为调用的方法返回一个结果

    String result = element.getFirstElement().getText();

    System.out.println(result + "-------------------");

    // 调用方法二 getPrice方法并输出该方法的返回值

    Object[] response = serviceClient.invokeBlocking(qname, parameters,

    returnTypes);

    // String r = (String) response[0];

    String r = (String) response[0];

    System.out.println(r + "-------------------");

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    展开全文
  • public static String pubRemoteFuc() {String endpoint = ...String result = "error";Service service = new Service();Call call;//参数对象SearchInfoVo d=new SearchInfoV...

    public static String pubRemoteFuc() {

    String endpoint = "http://cnblogs.com/qgc/xxxx/Service?wsdl";

    String result = "error";

    Service service = new Service();

    Call call;

    //参数对象

    SearchInfoVo d=new SearchInfoVo();

    d.setName("李建");

    d.setCardNum("44xxxxx");

    Object[] object = new Object[1];

    object[0] = d;//Object是用来存储方法的参数

    try {

    call = (Call) service.createCall();

    call.setTargetEndpointAddress(endpoint);// 远程调用路径

    QName qn = new QName("http://nciic.com.cn", "check" ); //接口的命名空间,请根据您的实际接口填写,和方法名称:

    call.setOperationName(qn);

    //设置参数的类型(这里是实体对象“SearchInfoVo”)http://cnblogs.com/qgc

    call.registerTypeMapping(SearchInfoVo.class,qn,

    new BeanSerializerFactory(SearchInfoVo.class, qn),

    new BeanDeserializerFactory(SearchInfoVo.class, qn));

    call.addParameter("arg0", qn, ParameterMode.IN );  //"arg0"不用改哟,我这里只有一个参数,并且参数是一个实体对象  http://cnblogs.com/qgc

    //            // 设置参数名:http://cnblogs.com/qgc

    //            call.addParameter("name", // 参数名

    //                    XMLType.XSD_STRING,// 参数类型:String

    //                    ParameterMode.IN);// 参数模式:‘IN‘ or ‘OUT‘

    /*            // 设置参数名:http://cnblogs.com/qgc

    call.addParameter("cardNum", // 参数名

    XMLType.XSD_STRING,// 参数类型:String

    ParameterMode.IN);// 参数模式:‘IN‘ or ‘OUT‘

    // 设置参数名:http://cnblogs.com/qgc

    call.addParameter("citizenId", // 参数名

    XMLType.XSD_STRING,// 参数类型:String

    ParameterMode.IN);// 参数模式:‘IN‘ or ‘OUT‘

    */            // 设置返回值类型:

    //call.setReturnType(XMLType.XSD_STRING);// 返回值类型:String

    call.setReturnType(XMLType.XSD_STRING);// 返回值类型:String

    result = (String) call.invoke(object);// 远程调用

    System.out.println(result);

    } catch (ServiceException e) {

    e.printStackTrace();

    } catch (RemoteException e) {

    e.printStackTrace();

    }

    return result;

    }

    public static void main(String[] args) throws Exception {

    pubRemoteFuc();//调用

    原文:http://www.cnblogs.com/qgc88/p/7008136.html

    展开全文
  • 目录一、搭建环境1、JAVA2、MySQL3、Tomcat4、Axis25、Eclipse以及插件二、最小系统测试1、 服务端开发:2、 生成arr文件:3、发布接口:三、服务端开发1、获取数据的函数2、保存数据的函数①连接数据库四、客户端...

    一、搭建环境

    JAVA、MySQL、Tomcat、Axis2、Eclipse以及Eclipse的插件。

    1、JAVA

    JDK采用1.8.0版本,JDK部署过程(环境变量等)不详述。

    2、MySQL

    MySQL采用8.0.17版本,详细安装及部署过程不详述。

    3、Tomcat

    Tomcat采用9.0.1版本,详细安装及部署过程不详述。本文中的默认端口已配置为80端口(之前是默认8080)。

    4、Axis2

    从axis官网下载axis2-1.7.7-bin.zipaxis2-1.7.7-war.zip两个压缩包。
    ①其中axis2-1.7.7-war.zip解压出来后将axis2.war文件放到%TOMCAT_HOME%\webapps文件夹下。重新启动Tomcat后会在此目录下自动生成一个axis2文件夹。此时在浏览器中访问http://localhost/axis2/,会出现axis2的欢迎页面,代表axis2部署成功:
    axis2欢迎界面②axis2-1.7.7-bin.zip压缩包中是axis2组件的所有jar包,解压后放到JDK的lib目录中以便后续在JAVA文件中引用。

    5、Eclipse以及插件

    ①安装Eclipse的J2EE版本,详细安装过程不详述。
    ② Eclipse中axis2环境配置:Window->Perferences->Web Services->Axis2 perferences->Axis2 Runtime->Axis2 Runtime location->Browse,选择解压axis2-1.6.2-bin.zip得到的axis2-1.6.2文件目录。
    ③下载Eclipse官方提供的axis插件工具,可以打包aar文件和生成客户端调用代码:http://axis.apache.org/axis2/java/core/tools/index.html
    其中的axis2-eclipse-codegen-plugin-1.7.9.zipaxis2-eclipse-service-plugin-1.7.9.zip两个压缩包。
    ④安装插件:解压axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip,把得到的两个jar包放入eclipse目录下的\plugins\中,重启eclipse。
    ⑤Eclipse中tomcat的配置:Window->Perferences->Server->Runtime Environments添加Tomcat服务器。

    至此,开发环境搭建完成。

    二、最小系统测试

    1、 服务端开发:

    ① 创建一个Dynamic Web Project,新建java类 getInfo

    package webService;
    
    /**
     * @className: getInfo
     * @description: 测试类,用于获取客户端传递来的字符串
     **/
    public class getInfo {
    	
    	/**
    	* @methodsName: getInfo
    	* @description: 获取信息
    	*/
    	public String getInfo(String info) {
    		//saveInfo类中的test方法,用于测试数据库连接情况
    		SaveInfo saveInfo = new SaveInfo();
    		saveInfo.test(info);
    		return info;
    	}
    }
    

    ② 新建java类 saveInfo

    package webService;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * @className: SaveInfo
     * @description: 测试类,用于将接收到的数据存储至本地数据库
     **/
    public class SaveInfo {
    	//用于数据库连接的变量
    	Connection conn = null;
    	Statement stam = null;
    	String sql = "";
    	PreparedStatement ps = null;
    	
    	//构造函数,初始化数据库连接
    	public SaveInfo() {
    		try {
    			String url = "jdbc:mysql://localhost:3306/DatabaseName?useSSL=false";
    			Class.forName("com.mysql.jdbc.Driver");
    			conn = DriverManager.getConnection(url, "userName", "password");
    			stam = conn.createStatement();
    		} catch (ClassNotFoundException e) {
    			System.out.println("数据库定义错误");
    		} catch(SQLException e) {
    			System.out.println("数据库连接错误");
    		}
    	}
    	
    	//测试将接收到的字符串保存至本地数据库的名为test1的数据表中
    	public String test(String data) {
    		try {
    			sql = "insert into test1 (info,date) values(?,?)";
    			ps = conn.prepareStatement(sql);
    			ps.setString(1,data);
    			ps.setString(2,"2020.05.22");
    			ps.executeUpdate();
    			return "OK";
    		} catch (SQLException e) {
    			System.out.println("数据写入出错");
    			e.printStackTrace();
    			return "NG";
    		}
    	}
    }
    

    2、 生成arr文件:

    编译此项目。然后在项目上右键,选择new->Other->Axis2 Service Archiver,然后选择项目的Class目录(一般为\工作空间\项目名称\build\classes目录),下一步Skip WSDL,下一步,下一步Generate the service xml automatically,输入Service Name(此为生成WebService之后的服务名称),输入完整的类路径(含package名),点击load此时会加载出该类中所有包含的方法,下一步选择保存路径,输入保存的名称,点击Finish则会在指定路径下生成一个.arr文件。

    3、发布接口:

    将此arr文件拷贝到%TOMCAT_HOME%\webapps\axis2\WEB-INF\services路径下,重启Tomcat,则服务部署成功。
    访问地址http://localhost/axis2/services/listServices,则可以看到该服务下的可用的方法。
    访问地址http://localhost/axis2/services/serviceName/getInfo?info=helloWorld,则可以看到返回结果,同时在数据库中查看应该有已保存的字段信息。
    注意:这种通过网址带参数访问的方式,参数中不能带有 { 或 \ 等特殊字符,否则无法访问。
    至此,最小系统开发完成。

    三、服务端开发

    1、获取数据的函数

    package webService;
    //此引用是用于输出log的插件,可以不用
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    
    /**
     * @className: getInfo
     * @packageName: webService
     * @description: 定义WebService方法,目标系统调用该方法传递所需信息
     **/
    public class GetInfo {
    	
    	private Logger logger = LogManager.getLogger(LogManager.class.getName());
    	/**
    	* @methodsName: GetAInfo
    	* @description: 获取A信息
    	*/
    	public String GetAInfo(String AInfo) {
    		logger.debug("A信息:" + AInfo);
    		SaveInfo saveInfo = new SaveInfo();
    		if(saveInfo.SaveAInfo(AInfo)) {
    			return "A OK";
    		}else {
    			return "A NG";
    		}
    	}
    	
    	/**
    	* @methodsName: GetBInfo
    	* @description: 获取B信息
    	*/
    	public String GetBInfo(String BInfo) {
    		logger.debug("B信息:" + BInfo);
    		SaveInfo saveInfo = new SaveInfo();
    		if(saveInfo.SaveBInfo(BInfo)) {
    			return "B OK";
    		}else {
    			return "B NG";
    		}
    	}
    	
    }
    
    

    2、保存数据的函数

    package webService;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    
    /********
     * @className: SaveInfo
     * @packageName: webService
     * @description: 用于将接收到的数据存储至本地数据库
     **/
    public class SaveInfo {
    
    	private static final String DBDRIVER = "com.mysql.jdbc.Driver";		//驱动程序名
    	private static final String DBURL = "jdbc:mysql://localhost:3306/databaseName?useSSL=false";	//要访问的数据库名
    	private static final String DBUSER = "userName";	//MySQL配置时的用户名
    	private static final String DBPASSWORD = "userPassword";	//MySQL配置时的密码
    	private Connection conn;
    	private Statement stam;
    	private PreparedStatement ps;
    	private String sql = "";
    	private SimpleDateFormat sdf;
    	private Calendar cal;
    	private Logger logger = LogManager.getLogger(LogManager.class.getName());
    	
    	//构造函数,连接数据库
    	public SaveInfo() {
    		sdf = new SimpleDateFormat("yyyy-MM-dd");
    		cal = Calendar.getInstance();
    		try {
    			Class.forName(DBDRIVER);
    			conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
    			stam = conn.createStatement();
    		} catch (ClassNotFoundException e) {
    			logger.error("数据库定义错误:"+e.getMessage());
    		} catch(SQLException e) {
    			logger.error("数据库连接错误:"+e.getMessage());
    		}
    	}
    	
    	/******
    	* @methodsName: SaveAInfo
    	* @description: 保存A信息
    	*/
    	public boolean SaveAInfo(String AData) {
    		
    		String currentDate = sdf.format(cal.getTime());
    		final int AInfoElementsCount = 12;	//A信息包含的元素数
    		
    		//原始信息处理
    		if (AData.length()<100) {
    			logger.debug("A信息写入失败:数据过短。");
    			return false;
    		}else {
    			String data1 = AData.replaceAll("some string", "");//此处为一般字符串处理函数
    			
    			String [] temp = new String[AInfoElementsCount];
    			temp = data1.split("\":\"");			//根据":"分割各条数据成元素存至temp[]
    			
    			// 写入数据库
    			try {
    				sql = "insert into infotable (info,date) values(?,?)";
    				ps = conn.prepareStatement(sql);
    				for (int i=0; i<AInfoElementsCount; i++) {		
    					ps.setString(i+1, temp[i]);
    				}
    				ps.executeUpdate();
    				
    	
    				CloseMySQL();
    				logger.debug("A信息写入成功");
    				System.out.println();
    				return true;
    			} catch (SQLException e) {
    				logger.error("A信息写入失败:" + e.getMessage());
    				e.printStackTrace();
    				return false;
    			}
    		}
    	}
    	
    	/******
    	* @methodsName: SaveBInfo
    	* @description: 保存B信息
    	*/
    	public boolean SaveBInfo(String data) {
    		//略
    	}
    
    	/******
    	* @methodsName: CloseMySQL
    	* @description: 关闭MySQL对象
    	*/
    	private void CloseMySQL(){
    		try {
    			if(conn != null) {
    				conn.close();
    			}
    			if(stam != null) {
    				stam.close();
    			}
    			if(ps != null) {
    				ps.close();
    			}
    		} catch (SQLException e) {
    			logger.error("关闭MySQL连接失败:" + e.getMessage());
    			e.printStackTrace();
    		}
    	}
    
    }
    
    

    注意:连接数据的代码中,
    Class.forName(“com.mysql.jdbc.Driver”); 这一句不能省略。否则在访问WebService时会报错:Exception occurred while trying to invoke service method getInfo。

    四、客户端开发

    可以使用两种方式进行调用,只需选一种调用即可。见代码中的两部分注释块:

    package webService;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.rmi.RemoteException;
    
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ServiceException;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis2.addressing.EndpointReference;
    import org.apache.axis2.client.Options;
    import org.apache.axis2.rpc.client.RPCServiceClient;
    
    public class ClientTest {
    
    	public static void main(String[] args) {
    		// 第一种方式
    		try {
    			String endpoint = "http://10.10.32.154/axis2/services/InfoManage";
    			//要调用的接口名称。此处我将AInfo和BInfo分成了两个接口单独发布的,此处仅调用AInfo的。
    			//注意webService要和发布的web.xlm中对应起来。
    			QName qn = new QName("http://webService","GetAInfo");
    			Service service = new Service();
    			Call call =  (Call)service.createCall();
    			call.setTargetEndpointAddress(new URL(endpoint));
    			call.setOperationName(qn);
    			//以在控制台读取用户输入的字符串的方式,进行参数输入
    			BufferedReader br = new BufferedReader(new InputStreamReader(System.in ));
    			String AData = br.readLine();
    			String ret = (String)call.invoke(new Object[]{AData});
    			System.out.println(ret);
    			} catch (ServiceException e) {
    				e.printStackTrace();
    			} catch (MalformedURLException e) {
    				e.printStackTrace();
    			} catch (RemoteException e) {
    				e.printStackTrace();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		
    		//  第二种方式
    		try {
    			//使用RPC方式调用WebService
    		    RPCServiceClient serviceClient = new RPCServiceClient();
    		    Options options = serviceClient.getOptions();
    		    //指定调用WebService的URL
    		    EndpointReference targetEPR = new EndpointReference("http://10.10.32.154/axis2/services/InfoManage?wsdl");
    		    options.setTo(targetEPR);
    		    
    			BufferedReader br = new BufferedReader(new InputStreamReader(System.in ));
    			String AData = br.readLine();
    		    //指定GetAInfo方法的参数值
    		    Object[] opAddEntryArgs = new Object[] {AData};
    		    //指定GetAInfo方法返回值的数据类型的Class对象
    		    QName opAddEntry = new QName("http://webService","GetAInfo");
    		    //调用GetAInfo方法并输出该方法的返回值
    		    serviceClient.invokeRobust(opAddEntry, opAddEntryArgs);
    		    
    		}catch (RemoteException e){
    			System.out.println("RemotrException:"+e.getMessage());
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    
    }
    
    

    五、发布部署

    按照上述第二步中“最小系统测试”中的发布方法,生成arr文档,并拷贝到服务器中Tomcat特定目录下,重启一下服务器,即可开始访问。

    备注

    要在项目中使用log4j2,请参考: log4j2基本使用手册

    ———————————————————————————

    展开全文
  • 介绍AXIS2中OMElement和Java对象之间的转换
  • axis1和axis2在技术架构上有着很大的不同,在网上找了很多方法,在自己本地测试无法通过。后来发现这是axis的版本不同,导致很多方法无法...官网地址:http://axis.apache.org/axis2/java/core/download.cgi 下载ax...

    axis1和axis2在技术架构上有着很大的不同,在网上找了很多方法,在自己本地测试无法通过。后来发现这是axis的版本不同,导致很多方法无法找到。

    下面介绍axis2实现访问webservice,首先搭建webservice服务端:

    在官网下载axis2所依赖的jar包。官网地址:http://axis.apache.org/axis2/java/core/download.cgi 下载axis2-xxx-bin.zip中拥有所有axis所有的jar包。先将所有jar包引入到工程中。

    服务端

    public String upload(DataHandler handler, String fileName) {
            if (fileName != null && !"".equals(fileName)) {
                File file = new File(fileName);
                if (handler != null) {
                    InputStream is = null;
                    FileOutputStream fos = null;
                    try {
                        is = handler.getInputStream();
                        fos = new FileOutputStream(file);
                        byte[] buff = new byte[1024 * 8];
                        int len = 0;
                        while ((len = is.read(buff)) > 0) {
                            fos.write(buff, 0, len);
                        }
                    } catch (FileNotFoundException e) {
                        return "fileNotFound";
                    } catch (Exception e) {
                        return "upload File failure";
                    } finally {
                        try {
                            if (fos != null) {
                                fos.flush();
                                fos.close();
                            }
                            if (is != null) {
                                is.close();
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    return "file absolute path:" + file.getAbsolutePath();
                } else {
                    return "handler is null";
                }
            } else {
                return "fileName is null";
            }
        }
    	
    	public String helloWorld(String xml) {
    		return "hello" + xml;
    	}

    service.xml

    service标签中targetnamespace为客户端连接的重要标识,要保持一致!

    <?xml version="1.0" encoding="UTF-8"?>
    <serviceGroup>
    	<service name="UploadFile"
    		targetNamespace="http://server.webservice.com/">
    		<messageReceivers>
    			<messageReceiver
    				mep="http://www.w3.org/ns/wsdl/in-only"
    				class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    			<messageReceiver
    				mep="http://www.w3.org/ns/wsdl/in-out"
    				class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    		</messageReceivers>
    		<description> fileupload </description>
    		<parameter name="ServiceClass" locked="false">com.webservice.server.UploadFileService
    		</parameter>
    	</service>
    </serviceGroup>

    客户端

    public static void main(String args[]) {
    		try {			
    			RPCServiceClient serviceClient = new RPCServiceClient();
    			String url = "http://localhost:8088/AxisWebservice/services/UploadFile?wsdl";
    			EndpointReference targetEPR = new EndpointReference(url);
    			Options options = serviceClient.getOptions();
    			options.setTo(targetEPR);
    			
    			//方法一 使用RPCServiceClient类的sendReceive方法访问webservice
    			options.setAction("http://server.webservice.com/helloWorld");	
    			//创建工厂
    			OMFactory fac = OMAbstractFactory.getOMFactory();
    			//webservice的targetnamespace 以及方法名
    			OMNamespace omNs = fac.createOMNamespace("http://server.webservice.com", "");
    			OMElement method = fac.createOMElement("helloWorld", omNs);
    			//参数
    			OMElement xml = fac.createOMElement("xml", omNs);		
    			xml.setText("Administrator");
    			method.addChild(xml);
    			method.build();
    			OMElement result = serviceClient.sendReceive(method);
        		System.out.println(result.toString());
    
    			//方法二 使用RPCServiceClient类的invokeBlocking访问webservice(文件传输)
    			File uploadFile = new File("C:\\Users\\admin\\Desktop\\test.txt");
    			FileInputStream input = new FileInputStream(uploadFile);
    			byte[] byt = new byte[(int)uploadFile.length()];
    			input.read(byt);
    			String base64 = new BASE64Encoder().encode(byt);
    			input.close();
    			//调用targetnamespace 以及方法名
    			QName opAddEntry = new QName("http://server.webservice.com","upload");
    			//传入参数
    			Object[] opAddEntryArgs = new Object[]{base64,"abc.txt"};
    			//返回值class对象
    			Class[] classes = new Class[] { String.class };
    			String result = serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0].toString();
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}

     

    展开全文
  • JavaAxis2 WebService 的HTTPS发布和调用

    千次阅读 2018-08-06 13:18:37
    近期公司把原有的一个HTTP的Axis2 WebService改为HTTPS,经过网上一番参考和研究整理如下。 发布https的项目大家应该清楚,不清楚的看这篇文章https://www.cnblogs.com/wanghaoyuhappy/p/5267702.html 接下来是...
  • 1 首先pom.xml引入axis2 maven配置 <groupId>org.apache.axis2 <artifactId>axis2-kernel <version>1.6.1 </dependenc
  • axis2实现webservice服务

    2021-03-18 13:34:48
    标签:axis2实现webservice服务采用java1.8, axis2为1.7.8服务端实现服务端采用先实现java代码,然后使用工具java2wsdl产生wsdl文件,之后再通过wsdl2java产生服务端代码。public class MyServerImpl implements My...
  • 最近项目中需要BPM系统远程调用MESS接口(WebService类型),特此记录资料如下。 一、WebService简介 Web Service技术, 能使得运行在不同机器上的不同...所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,
  • java本身提供的方法不能获取方法的参数名的,只能获取每个参数的类型 比如:public String concatString(String param1,String param2){ return param1+param2; }想获取”param1”,和”param2”这个参数名,肯定...
  • 最近在使用AXIS2部署Web Service,关于如果使用axis2部署Web Service的方法不想在这里多说,网站有很多相关的文章,这里只想谈谈AXIOM对象Java中的对象的转换方法。 关于AXIOM的介绍,下面这个片段已经说得很...
  • /*** 指定要调用的getPrice方法及WSDL文件的命名空间 * 如果 webservice 服务端由axis2编写 * 命名空间 不一致导致的问题 * org.apache.axis2.AxisFault: java.lang.RuntimeException: Unexpected subelement arg0*/...
  • 第一,RPC方式,不生成客户端代码,引入相应的axis2的jar包(不好用) 注意:暂时没有成功调用,没有参数传递时远程调用成功,当有参数传递时远程调用失败;package com.ming.axis2;import javax.xml.namespace....
  • 我们的webservice服务器端是以axis2为基础构建的,客户端提交的soap请求参数不正确或其他情况下,会抛出异常给客户端。这些异常在SOAP这一层是以Fault类型的消息呈现的,比如目前有如下异常: DeleteImgFail // ...
  • 使用SSL/HTTPS协议来传输Web服务也可以使用SSL作为传输协议。虽然JAX-RPC并没有强制规定是否使用SSL协议,但在tomcat 下使用HTTPS协议。1、使用JDK自带的工具创建密匙库和信任库。1)通过使用以下的命令来创建服务器...
  • web集成axis2Welcome to Apache Axis2 Tutorial. Recently I was trying to upgrade my Apache Axis2 skills from 1.3 to latest version 1.5.4 and I was not able to find out any tutorial that is self-...
  • Axiom简述--Axis2 的XML处理器Axis2用Axiom,也就是Axis Object Model,处理SOAP文档。Axiom采用pull解析方式,基于StAX(JSR173)。Pull解析是最近处理XML的一种趋势。而SAX和DOM都是基于push的解析方式,也就是说...
  • ApacheXMLSOAP使用Axis调用WebSerivices非常简单,废话不多说,直接上代码Java代码1.importjava.rmi.RemoteException;2.3.importjavax.xml.namespace.QName;4.importjavax.xml.rpc.ParameterMode;5.importjavax.xml....
  • 在使用axis2 webservice时,对于初始学者,最方便的方式就是就wsdl2java工具生成Stub代码,然后就可以方便的调用Stub代码提供的类,像本地方法一样调用webservice接口。 我们知道,axis2生成的webservice接口可以很...
  • /** * 指定要调用的getPrice方法及WSDL文件的命名空间 * 如果 webservice 服务端由axis2编写 * 命名空间 不一致导致的问题 * org.apache.axis2.AxisFault: java.lang.RuntimeException: Unexpected ...
  • Axis2创建WebService实例

    千次阅读 2015-09-14 18:37:20
     一、Axis2的下载和安装  1.可从http://ws.apache.org/axis2/ 下载Axis2的最新版本:  可以下载如下两个zip包:  axis2-1.5.4-bin.zip  axis2-1.5.4-war.zi
  • Springboot集成axis1.4的demo

    热门讨论 2017-07-10 18:03:42
    Spring boot 集成Axis1.4 ,使用wsdd文件发布webservice
  • axis,axis2及XFire简介和对比
  • Axis2入门中我们使用WebService来传递简单类型的数据,但有时也需要传递更复杂的数据,这些数据可以被称为复合类型的数据。数组与类(接口)是比较常用的复合类型。在Axis2中可以直接使用将WebService方法的参数或...
  • import java.sql.Connection;import java.text.SimpleDateFormat;import java.util.Date;import javax.xml.namespace.QName;import javax.xml.rpc.Parameter...import org.apache.axis.client.Service;import org....
  • WebService_java编写Webservice_Axis2_1.6

    千次阅读 2013-08-06 22:03:21
    最近给某省国家电网写一套系统,由于内部数据库单向隔离装置不支持ODBC, 原来c#写的webservice 和.net ,iis就需要换成java这一套。。。 下面是用Axis2 写的webservice 的例子 Axis2是一套崭新的WebService引擎,...
  • 可从http://axis.apache.org/axis2/java/core/download.html 下载Axis2的最新版本: 可以下载如下两个zip包: axis2-1.7.6-bin.zip axis2-1.7.6-war.zip 其中 axis2-1.7.6-bin.zip文件中包含了Axis2中所有的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,237
精华内容 4,894
关键字:

java获取axis2服务对象

java 订阅