精华内容
下载资源
问答
  • 我在用Java调用WebService服务时,出现了这个错误 Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.setParams(Lorg/apache/commons/...

    我在用Java调用WebService服务时,出现了这个错误

    Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.setParams(Lorg/apache/commons/httpclient/params/HttpConnectionManagerParams;)V
    	at org.codehaus.xfire.transport.http.CommonsHttpMessageSender.createClient(CommonsHttpMessageSender.java:228)
    	at org.codehaus.xfire.transport.http.CommonsHttpMessageSender.open(CommonsHttpMessageSender.java:129)
    	at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:121)
    	at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
    	at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
    	at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
    	at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
    	at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
    	at org.codehaus.xfire.client.Client.invoke(Client.java:336)
    	at org.codehaus.xfire.client.Client.invoke(Client.java:368)
    	at bao.main(bao.java:26)

    根据帖子http://bbs.csdn.net/topics/390183100中的回复得到了解决办法

    引入了多余的包,只需把commons-httpclient.jar去掉,只留下commons-httpclient-3.0.1.jar就行了


    展开全文
  • 项目需求上需要调用另一个合作伙伴的webservice接口,之前用的是sax的调用方式,开始摸索这个,感觉这个也挺简单的,现在把自己的实现过程分享给大家,写的不好的地方,望大家勿喷。 详细代码如下: package ...

    项目需求上需要调用另一个合作伙伴的webservice接口,之前用的是sax的调用方式,开始摸索这个,感觉这个也挺简单的,现在把自己的实现过程分享给大家,写的不好的地方,望大家勿喷。

    详细代码如下:

    package com.ancs.oa;
    
    import java.util.Date;
    
    import javax.xml.namespace.QName;
    
    import org.apache.axis2.AxisFault;
    import org.apache.axis2.addressing.EndpointReference;
    import org.apache.axis2.client.Options;
    import org.apache.axis2.rpc.client.RPCServiceClient;
    /**
     * 
     * @ClassName:MessageService
     * @Description:调用webservice传入5个参数
     * @author luckyboyguo@126.com
     * @date:2014年12月25日下午5:16:21
     */
    public class MessageService {
    	public static Object ToOaMessage(String a,String b,String c,String d) throws AxisFault{
    		 // 使用RPC方式调用WebService  
    		RPCServiceClient  client=new RPCServiceClient();
    		Options option=client.getOptions();
    		 // 指定调用WebService的URL   
    		EndpointReference targetEPR =new EndpointReference("你的webservice地址");
    		option.setTo(targetEPR);
    		 // 指定要调用的plus方法及WSDL文件的命名空间  
    		//http://test
    		QName opAddEntry =new QName("http://webService.oa.ancs.com","docMessageInsert");
    		  // 指定plus方法的参数值  
    		 Object[] opAddEntryArgs = new Object[] {a,b,c,d,new Date() };  
    		// 指定plus方法返回值的数据类型的Class对象    
    		 Class[] classes = new Class[] { String.class }; 
    		 // 调用plus方法并输出该方法的返回值  
    		 try {
    			return client.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0];
    		} catch (AxisFault e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return null;
    
    	}
    	
    }
    


    展开全文
  • java调用webservice接口 几种方法

    万次阅读 2016-12-06 14:34:03
    java调用webservice接口 几种方法

    转载自http://af8991.iteye.com/blog/1702741

    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。今天搜索到了非常好的 webservice provider列表

    http://www.webservicex.net/WCF/default.aspx

    这上面列出了70多个包括很多方面的free webservice provider,utilities->global weather就可以获取全球的天气预报。

    下面我们来看Java如何通过WSDL文件来调用这些web service:

    注意,以下的代码并没有经过真正的测试,只是说明这些情况,不同版本的Axis相差很大,大家最好以apache网站上的例子为准,这里仅仅用于说明其基本用法。

    1,直接AXIS调用远程的web service

    我觉得这种方法比较适合那些高手,他们能直接看懂XML格式的WSDL文件,我自己是看不懂的,尤其我不是专门搞这行的,即使一段时间看懂,后来也就忘记了。直接调用模式如下:

    import java.util.Date;
    import java.text.DateFormat;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import javax.xml.namespace.QName;
    import java.lang.Integer;
    import javax.xml.rpc.ParameterMode;
    
    public class caClient {
    	public static void main(String[] args) {
    
    		try {
    			String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";
    			// 直接引用远程的wsdl文件
    			// 以下都是套路
    			Service service = new Service();
    			Call call = (Call) service.createCall();
    			call.setTargetEndpointAddress(endpoint);
    			call.setOperationName("addUser");// WSDL里面描述的接口名称
    			call.addParameter("userName",
    					org.apache.axis.encoding.XMLType.XSD_DATE,
    					javax.xml.rpc.ParameterMode.IN);// 接口的参数
    			call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型
    			String temp = "测试人员";
    			String result = (String) call.invoke(new Object[] { temp });
    			// 给方法传递参数,并且调用方法
    			System.out.println("result is " + result);
    		} catch (Exception e) {
    			System.err.println(e.toString());
    		}
    	}
    }


    2,直接SOAP调用远程的webservice

    这种模式我从来没有见过,也没有试过,但是网络上有人贴出来,我也转过来


    import org.apache.soap.util.xml.*;
    import org.apache.soap.*;
    import org.apache.soap.rpc.*;
    
    import java.io.*;
    import java.net.*;
    import java.util.Vector;
    
    public class caService {
    	public static String getService(String user) {
    		URL url = null;
    		try {
    			url = new URL(
    					"http://192.168.0.100:8080/ca3/services/caSynrochnized");
    		} catch (MalformedURLException mue) {
    			return mue.getMessage();
    		}
    		// This is the main SOAP object
    		Call soapCall = new Call();
    		// Use SOAP encoding
    		soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
    		// This is the remote object we're asking for the price
    		soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized");
    		// This is the name of the method on the above object
    		soapCall.setMethodName("getUser");
    		// We need to send the ISBN number as an input parameter to the method
    		Vector soapParams = new Vector();
    
    		// name, type, value, encoding style
    		Parameter isbnParam = new Parameter("userName", String.class, user,
    				null);
    		soapParams.addElement(isbnParam);
    		soapCall.setParams(soapParams);
    		try {
    			// Invoke the remote method on the object
    			Response soapResponse = soapCall.invoke(url, "");
    			// Check to see if there is an error, return "N/A"
    			if (soapResponse.generatedFault()) {
    				Fault fault = soapResponse.getFault();
    				String f = fault.getFaultString();
    				return f;
    			} else {
    				// read result
    				Parameter soapResult = soapResponse.getReturnValue();
    				// get a string from the result
    				return soapResult.getValue().toString();
    			}
    		} catch (SOAPException se) {
    			return se.getMessage();
    		}
    	}
    }

    3,使用wsdl2java把WSDL文件转成本地类,然后像本地类一样使用,即可。

    这是像我这种懒人最喜欢的方式,仍然以前面的global weather report为例。

    首先 java org.apache.axis.wsdl.WSDL2Java http://www.webservicex.net/globalweather.asmx.WSDL

    原本的网址是http://www.webservicex.net/globalweather.asmx?WSDL,中间个各问号,但是Linux下面它不能解析,所以去掉问号,改为点号。

    那么就会出现4个文件:

    GlobalWeather.java 

    GlobalWeatherLocator.java 

    GlobalWeatherSoap.java

    GlobalWeatherSoapStub.java
    其中GlobalWeatherSoap.java是我们最为关心的接口文件,如果你对RMI等SOAP实现的具体细节不感兴趣,那么你只需要看接口文件即可,

    在使用的时候,引入这个接口即可,就好像使用本地类一样。

    展开全文
  • Java调用webservice方法

    千次阅读 2014-05-22 10:54:26
    1. Java调用webservice接口方法 webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。 我们也可以在...

    1. Java调用webservice接口方法

    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。

    我们也可以在以下网站找到许多 webservice provider列表, 你可以使用下面的URL来测试你的webservice程序。

     

    http://www.webservicex.net/ws/default.aspx

     

    这上面列出了70多个包括很多方面的free webservice provider,utilities->global weather就可以获取全球的天气预报。

     

    下面我们来看Java如何通过WSDL文件来调用这些web service(以 COPS WebSSO为例)

     

    1.1 [Apache提供]直接通过AXIS调用远程的web service

     

    我认为这种调用方式适合比较那种返回比较简单的数据的service, 比如,天气预报,这些内容肯定可以通过一个很简单的xml来返回。还有就是WebSSO,返回的就是一个字符串。

    这种调用方式的好处就是简单(开发简单,调用简单,只要service提供方不改动对外的方法接口,客户端都无需有代码带动),无需对web service有太深了解,只要按照套路去掉用就可以了。

     

    直接调用模式如下:

     

    <<LogonClientWithURL.java>>

     

    package ws.client;
     
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
     
     
    public class LogonClientWithURL {
      public static void main(String args[]) throws Exception {
            try {
                      String urlname = "http://192.168.194.23:9080/Logon/services/Logon?wsdl" ;
                      urlname = "http://192.168.194.23:9080/Logon/services/Logon";
                       
                      Service s = new  Service();
                      Call call = (Call) s.createCall();
                      call.setTimeout(new Integer(5000));
                      call.setOperation( "getSecurityToken" );
                      call.setTargetEndpointAddress(urlname);
                         
                      Object[] fn01 = { "john" , "john" , null ,null };
                      String val = (String)call.invoke(fn01);
                      System.out .println( "getSecurityToken(correct):"  + val);
                       
                      Object[] fn02 = { "john" , "john2" , null ,null };
                      String va2 = (String)call.invoke(fn02);
                      System.out .println( "getSecurityToken(wrong):"  + va2);
               
            } catch (Exception e) {
                  //java.io.InterruptedIOException: Read timed out
                  System.out.println(e.getMessage());
            }
     
      }
    }


     

    1.2 [Apache提供]使用WSDL2Java把WSDL文件转成本地类,然后像本地类一样使用。

    这种方式应该可以调用所有的webService。

    同时这个调用方式适合那种业务比较复杂的Service (特别是企业应用, 不是外部所有人都能无限制访问那种Service),比如,这个Service返回的xml内容比较复杂,同时多个客户端系统都需要访问这个Service,在这种情况,service提供方可能会考虑返回一个java类。毕竟,每个客户端都要解析xml也够麻烦的,还不如让service提供方返回一个类。

     

    调用模式如下:

    1)使用WSDL2Java把WSDL文件转成本地类。 我这里写了bat文件:

    <<WSDL2JAVA.bat>>

    set Axis_Lib=.\lib
    set Java_Cmd=D:\Dev\JDK\jdk1.4.2_12\bin\java -Djava.ext.dirs=%Axis_Lib%
    set Output_Path=.\src
    set Package=com.ubs.ws
    %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% http:\\192.168.194.23:9080\Logon\services\Logon\wsdl\Logon.wsdl
    Pause


     

    运行直接生成以下java类

    Logon.java

    LogonService.java

    LogonServiceLocator.java

    LogonSoapBindingStub.java

     

    2) <<LogonClientWithStub.java>>

    package test.cis.client;
     
    import test.cis.*;
     
    public class LogonClientWithStub {
     
          public static void main(String[] args) {
                try {
     
                      Logon locator = new LogonServiceLocator().getLogon();
                      String result = locator.getSecurityToken("john" , "john" ,null , null );
     
                      System.out.println("getSecurityToken(correct): " + result);
                     
                     
                      result = locator.getSecurityToken("john" , "john2" ,null , null );
     
                      System.out.println("getSecurityToken(wrong): " + result);
                     
                } catch (Exception e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                }                      
               
          }
     
    }


     

    1.3 [Apache提供]直接SOAP调用远程的webservice

    apache的soap项目,不过如今已经被axis取代了,后者重新进行了架构设计,功能更齐全。

    前者已停止开发。所以建议用axis。也就是1.1 & 1.3

     

    1.4 [XFire提供] 使用XFire调用WebService

    有兴趣的可以下载XFire的jar来学习一下。

    展开全文
  • Java调用webservice接口方法

    千次阅读 2013-05-09 22:48:57
    1. Java调用webservice接口方法 webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。 我们也可以在...
  • 近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限,还请大家...
  • java调用webservice接口方法

    千次阅读 2015-01-09 16:36:36
    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。今天搜索到了非常好的 webservice provider列表 ...
  • JAVA调用Webservice接口Demo

    热门讨论 2013-05-09 14:55:13
    JAVA调用Webservice接口Demo 直接上代码,下载下来可直接运行看到效果 1,IP查询 2,根据省份查城市
  • java调用webservice服务

    万次阅读 2020-07-07 23:50:11
    * @author ourlang */ public class ClientServiceUtil { /** * 动态调用第三方webservice通用方法 * * @param wsdlUrl 请求的wsdl的路径 * @param operationMethod 调用webservice接口的方法名 * @param parameters...
  • java调用webService的各种方法

    万次阅读 2009-10-22 19:03:00
    java 调用webservice的各种方法总结 现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!! 由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和大家一起来研究研究webservice的各种使用...
  • java远程调用WebService方法

    千次阅读 2018-07-06 15:53:53
    通过AXIS调用远程的web service。已测可用。import javax.xml.rpc.ParameterMode; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType; /** ...
  • java调用webService接口的几种方法

    千次阅读 2019-07-24 10:56:15
    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来...1.可以通过带有webservice插件的Eclipse直接生成调用webservice客户端代码 在Eclipse中生成webservice客户端代码,New----...
  • java调用webservice的demo

    千次下载 热门讨论 2015-04-03 15:49:23
    java调用web service的完整源码。可以使用。
  • java调用WebService接口方法

    万次阅读 2014-01-07 09:05:46
    import java.net.MalformedURLException; import java.rmi.RemoteException; import org.apache.axis.client.Service; import org.apache.axis.client.Call; import javax.xml.namesp
  • java调用webservice接口500错误

    万次阅读 2016-03-22 16:12:29
    java调用webservice接口500错误
  • java调用WebService服务的几种方法

    万次阅读 2018-03-12 15:01:24
    一、前言 本来不想写这个的...因为通常来说,两个java端之间的互相通讯没必要写成WebService的方式,太麻烦。除非有一方已经固定了是webService的方式(常见于牛逼的甲方)。而且就算写成了WebService方式两个java...
  • java调用webservice

    千次阅读 2008-11-20 10:49:00
    我要用JAVA调用一个WEBservice WEBservice的地址为:http://www.xxxxx.com.cn/webservice/online.asmx 方法名:checkMember 此方法将返回void 怎么样来实现呢? 是那种方法的axis还是xfire的,两种调用方法不同。 ...
  • java调用webservice接口(.asmx)该系统提供了webservice接口。现在把记录一下,方便自己以后用,说不定也能帮到正在看这篇文档的你。 首先需要确认,我这边写的是java后台直接调用webservice接口,并且接口后缀为...
  • java 调用webservice的几种方法

    千次阅读 2010-07-04 11:44:00
    java 调用webservice的几种方法总结    一、利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务  1.首先建立一个Web services EndPoint: package Hello;  import javax...
  • Java调用WebService接口

    2018-05-22 13:57:56
    可以测试的WebService测试地址(例如:腾讯QQ在线状态 WEB 服务 http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl 通过输入QQ号码(String)检测QQ在线状态。返回数据(String)Y = 在线;N = ...
  • java 调用WebService服务接口

    千次阅读 2011-09-21 10:57:21
    由于最近项目中遇到WebService应用,需要调用WebService提供的接口,搞了几个小时,才正确的调用到接口。主要问题还是WebService接口在SOAP头上面搞了些验证的东西,需要传一...Java调用WebService可以直接使用Apache提
  • import java.util.ArrayList; import java.util.List; import javax.xml.rpc.ParameterMode; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XML....
  • java调用webservice调用短信接口发送短信 本人现在有个功能是发送短信验证码,第三方只给了一个url,领导说利用web service调用短信接口就好了 求助一下 具体实现的思路和技术点

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,739
精华内容 20,295
关键字:

java调用webservice方法

java 订阅