java webservices 以Axis1.4方式 调用sap webservice接口.

1. 首先需要下载Axis1.4 jar包,这个必应搜索大把,下载下来后把jar包加入eclipse工程项目路径中即可.

2. 下载mail.jar和activation.jar 俩个包。下载地址:https://www.eclipse.org/webtools/wst/components/ws/download_instructions_for_jars.html

该网址中含有所有 java webServices 所需要的jar包。如果确实这俩个包,运行时会有:Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart) 异常.

以下为可以跑的通的代码,需要修改相应的账户密码,路径,方法名,方法参数(在Xmlbody中修改),下载好相应的jar包.

package frcProject;

import javax.xml.rpc.ParameterMode;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

/**
 *
 * WebService调用 通过AXIS1.4调用远程的web service
 *
 *
 *
 *
 * @author lb
 *
 *
 */
public class testWebService {

    public static void main(String[] args) {

        String endpoint = "http://s4dapp.eva-holdings.com:8000/sap/bc/srt/wsdl/flv_10002A101AD1/bndg_url/sap/bc/srt/rfc/sap/zcs_ws001/200/zcs_ws001/zcs_ws001";// 远程请求访问wsdl文件

        String xmlBody = "<?xml version=\"1.0\" encoding=\"GBK\"?><request>" + "<num1>5</num1>"

                + "<num2>5</num2>" + "</request>";// 请求参数

        String returnData = "";

        try {
            Service service = new Service();

            Call call = (Call) service.createCall();

            call.setProperty(org.apache.axis.client.Call.USERNAME_PROPERTY, "account"); // 账号
            call.setProperty(org.apache.axis.client.Call.PASSWORD_PROPERTY, "password");// 密码

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

            call.setOperationName("remoteMethodName");// 调用的方法名

            // 设置参数名: 参数名,参数类型,参数模式

            call.addParameter("xmlBody", XMLType.XSD_STRING, ParameterMode.IN);

            call.setReturnType(XMLType.XSD_STRING);// 设置被调用方法的返回值类型

            try {
                returnData = (String) call.invoke(new Object[] { xmlBody });// 远程调用
            } catch (Exception e) {
                System.out.println(e);
            }

            System.out.println("result is " + returnData);

        } catch (Exception e) {

            System.err.println(e.toString());

        }

    }

}

原文地址:https://www.cnblogs.com/libo2019/p/10556064.html

时间: 2024-07-30 18:27:09

java webservices 以Axis1.4方式 调用sap webservice接口.的相关文章

java调用CXF WebService接口的两种方式

通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了. 2.静态调用 // 创建WebService客户端代理工厂        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();        // 判断是否抛出异常        factory.getOutInterceptors().add(new LoggingInIntercept

python用requests和urllib2两种方式调用图灵机器人接口

最近从网上看见个有意思的图灵机器人,可以根据不同的信息智能回复,比如你发送一个"讲个笑话",它就会给你回复一个笑话,或者"北京天气"就可以回复天气情况,或者英文单词然后给你回复中文释义.官方文档中有php和java的调用方式,我就弄个python的吧. 注册获取API KEY 这一步很简单,直接注册一个账号就可以看到你的API KEY.这个KEY我们以后发送get请求的时候需要用到. Pythoh调用示例 掉用也比较简单,主要是模拟post 请求.然后解析 json

Axis2 java调用.net webservice接口的问题(郑州就维)

[html] view plaincopy 这是一个古老的问题,古老到从我若干年前遇到这样的问题就是一个解决之道:反复尝试.其实标准是什么,标准就是一个束缚,一种按既定规则的束缚,错点点,你的调用就可能不成功,不成功后你要花费大量的力气查找原因和错误,差异很多帖子,查找相似的地方,Webservice的实现不同,Soap,CXF,Axis等,每种工具都有指定的方式,刚开始尝试Soap发现这个根本没合适的包进行调用,也是IBM比较老的jar,2001年写的比较复杂,我对比较复杂的东西向来不感兴趣,

调用天气预报webservice接口

1.将 服务端的wsdl文档保存至 本地 http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?WSDL 2.将里面的 <s:element ref="s:schema"/><s:any/>都替换为 <s:any minOccurs="2" maxOccurs="2"/> 3. 将里面的 &nbsp 删掉(无法识别) 4.创建java项目,生成客户端文件,

使用ajax和urlconnection方式调用webservice服务

<html> <head> <title>使用ajax方式调用webservice服务</title> <script> var xhr = new XMLHttpRequest(); function sendAjax(){ var url = "http://192.168.13.66:8080/hello";//webservice服务的地址 var requestBody = '<soapenv:Envelope

Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍

jedis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分布式的调用方式做一个简单的介绍和对比: 一.普通同步方式 最简单和基础的调用方式: 1 @Test 2 public void test1Normal() { 3 Jedis jedis = new Jedis("localhost"); 4 long start = System.curre

Java客户端Jedis的八种调用方式

redis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分布式的调用方式做一个简单的介绍和对比:  一.普通同步方式 最简单和基础的调用方式, @Test  public void test1Normal() {      Jedis jedis = new Jedis("localhost");      long start = System.c

FineReport中以jws方式调用WebService数据源方案

在使用WebService作为项目的数据源时,希望报表中也是直接调用这个WebService数据源,而不是定义数据连接调用对应的数据库表,这样要怎么实现呢? 在程序中访问WebService应用服务,将WebService返回的数据转为程序数据集,然后在设计器中调用. 以axis1.4上的WebService为例,介绍其取数方式以及将数据转换为WebService的程序数据集的过程. WebService应用服务 如在Tomcat下的Axis工程中以jwa方式发布了一个WebService应用服

[连载]Java程序设计(04)---任务驱动方式:工资结算系统

任务:还是在上一家公司,该公司将职员分为三类:部门经理.技术员和销售员.在发工资的时候,部门经理拿固定月薪8000元,技术人员按每小时100元领取月薪,销售人员按照500元底薪加当月销售额的4%进行提成,设计并实现一个工资结算系统. 分析:不管是部门经理.技术员还是销售员都具有员工的共同特征,可以先设计一个员工类(Employee),并将结算工资的方法设计为抽象方法,因为不同的员工有不同的结算工资的方式,需要进行多态实现.所谓的抽象方法就是没有方法体并被abstract修饰符修饰的方法.如果一个