java axis调用WebService 服务端,客户端

服务端:

1、Calculator

package ws;

public class Calculator {

public int add(int a, int b) {

return (a + b);

}

public int subtract(int a, int b) {

return (a - b);

}

public int multiply(int a, int b) {

return (a * b);

}

public int divide(int a, int b) {

return (a / b);

}

}

生成wsdl见附件

客户端:

2、引入axis的jar包

3、Test01

package Test;

import javax.xml.namespace.QName;

import org.apache.axis2.addressing.EndpointReference;

import org.apache.axis2.client.Options;

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

public class Test01 {

public static void main(String[] args) {

String url = "http://localhost:8080/WebserviceTest/services/Calculator";

String result = null;

try {

//使用RPC方式调用WebService

RPCServiceClient serviceClient = new RPCServiceClient();

Options options = serviceClient.getOptions();

//使用RPC方式调用WebService

EndpointReference targetEPR = new EndpointReference(url);

options.setTo(targetEPR);

// 在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名,也就是<wsdl:definitions>元素的targetNamespace属性值

//指定要调用的add方法及WSDL文件的命名空间.....

QName add = new QName("http://csh.bzu.com","add");

// 指定add方法的参数值,如果有多个,继续往后面增加即可,不用指定参数的名称

Object[] opAddEntryArgs = new Object[] { 2, 3};

//返回参数类型

//invokeBlocking方法有三个参数,其中第一个参数的类型是QName对象,表示要调用的方法名;

//第二个参数表示要调用的WebService方法的参数值,参数类型为Object[];

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

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

// 如果被调用的WebService方法没有返回值,应使用RPCServiceClient类的invokeRobust方法,

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

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

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

// 调用add方法并输出该方法的返回值.......

result = (String) serviceClient.invokeBlocking(add, opAddEntryArgs,classes)[0];

System.out.println("the add result is:"+ result);

// 下面是调用subtract方法的代码,这些代码与调用getWorld方法的代码类似

QName subtract = new QName("http://csh.bzu.com","subtract");

Object[] opAddEntryArgs1 = new Object[] { 2, 3};

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

result = (String) serviceClient.invokeBlocking(subtract, opAddEntryArgs1,classes1)[0];

System.out.println("the subtract result is:"+ result);

// 下面是调用multiply方法的代码,这些代码与调用getWorld方法的代码类似

QName multiply = new QName("http://csh.bzu.com","multiply");

Object[] opAddEntryArgs2 = new Object[] { 2, 3};

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

result = (String) serviceClient.invokeBlocking(multiply, opAddEntryArgs2,classes2)[0];

System.out.println("the multiply result is:"+ result);

// 下面是调用divide方法的代码,这些代码与调用getWorld方法的代码类似

QName divide = new QName("http://csh.bzu.com","divide");

Object[] opAddEntryArgs3 = new Object[] { 2, 3};

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

result = (String) serviceClient.invokeBlocking(divide, opAddEntryArgs3,classes3)[0];

System.out.println("the divide result is:"+ result);

} catch (Exception e) {

e.printStackTrace();

}

}

}

时间: 2024-08-02 11:02:40

java axis调用WebService 服务端,客户端的相关文章

WebService 服务端客户端 实例(一)

Delphi中WebService包含的组件解释(有7个)     (1) THTTPRIO-------:使用Http消息来调用远程使用SOAP的接口对象     (2) THTTPReqResp---:给服务器发送一个SOAP消息, THTTPReqResp在可调用接口上执行一个方法请求.       (3) TOPToSoapDomConvert ----:TOPToSoapDomConvert处理Soap方法请求的组合与分发     (4) TSoapConnection:TSoapCo

JAVA WEBSERVICE服务端&amp;客户端的配置及调用(基于JDK)

前言:我之前是从事C#开发的,因公司项目目前转战JAVA&ANDROID开发,由于对JAVA的各种不了解,遇到的也是重重困难.目前在做WEBSERVICE提供数据支持,看了网上相关大片的资料也是云里雾里的,索性最后得以解决,现将代码及方法发布如下,有需要的朋友可以参考,谢谢! --------------------------------------------------- WEBSERVICE服务端 package lavasoft; import javax.jws.WebMethod;

一个PHP写的简单webservice服务端+客户端

首先是服务端,服务端有一个主要的class组成:apiServer.php <?php /** * apiServer.php * * webservice主类 * * @filename apiServer.php * @version v1.0 * @update 2011-12-22 * @author homingway * @contact [email protected] * @package webservice */ define('API_AUTH_KEY', 'i8XsJb

记一次在Eclipse中用Axis生成webservice服务端的过程中出现的问题

问题一. Unable to find config file.  Creating new servlet engine config file: /WEB-INF/server-config.wsdd 找不到这个.wsdd的配置文件,没有自动生成! 原因是使用Eclipse自动生成axis服务端时没有执行的最后一步!如图: 当进行的这一步时,需要接着点击启动服务的按钮,之后Next按钮就会可用,点击Next按钮后就会自动生成这个.wsdd文件! 问题二. AxisFault faultCod

DelphiXE7中创建WebService(服务端+客户端) good

相关资料:http://www.2ccc.com/news/Html/?1507.html DelphiXE7新建WebService具体操作:1.打开“DelphiXE7”->“File”->“New”->“Other”2.“New Items”->“Delphi Projects”->“WebSrvice”->“SOAP Server Application”3.“Stand-alone application”->“Next”4.“VCL applicati

DelphiXE7中创建WebService(服务端+客户端)

相关资料:http://www.2ccc.com/news/Html/?1507.html DelphiXE7新建WebService具体操作:1.打开“DelphiXE7”->“File”->“New”->“Other”2.“New Items”->“Delphi Projects”->“WebSrvice”->“SOAP Server Application”3.“Stand-alone application”->“Next”4.“VCL applicati

webservice通信 服务端 客户端简单实现

schema规范中: 1.所有标签和属性都需要有schema文件来定义. 2.所有schema文件都需要有一个唯一标识id,单在xml文件中它叫namespace. 3.namespace的值由targetNamespace属性来指定,它的值是一个url(很可能不存在). 4.如何引入一个schema约束? 1).属性?:用xmlns属性. 2).属性值?:对应schema文件的id即(namespace值). 5.如果引入的schema约束不是w3c提供的,必须指定schema文件的位置. 6

delphi调用 java 的 WebService服务端.

// InvRegistry.RegisterInvokeOptions(TypeInfo(ModelADServicePortType), ioLiteral); InvRegistry.RegisterInvokeOptions(TypeInfo(ModelADServicePortType), ioDocument); delphi调用 java 的 WebService服务端.,布布扣,bubuko.com

axis调用webservice客户端开发

第一步:wsdl2Java.bat文件编写 Axis_Lib表示依赖的jar包路径 Output_Path表示生成的class路径 Package包名 还需要手动更改 -p %Package%表示webservice服务端名称 (注:http://localhost/CHIMSWEB/services/ChimsAppImplService?wsdl) set Axis_Lib="E:\Workspaces\MyEclipse Professional\CHIMS_20151008\WebRoo