如何调用eclipse发布webservicee接口

2014年10月 Java大版内专家分月排行榜第二2014年9月 Java大版内专家分月排行榜第二2014年8月 Java大版内专家分月排行榜第二
2016年1月 Java大版内专家分月排行榜第三2014年12月 Java大版内专家分月排行榜第三2014年11月 Java大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。调用webservice接口教程 - 简书
<div class="fixed-btn note-fixed-download" data-toggle="popover" data-placement="left" data-html="true" data-trigger="hover" data-content=''>
写了1159字,被2人关注,获得了4个喜欢
调用webservice接口教程
其实我今天写这个东西,主要是为了以后的小伙伴,遇到一些古老的公司会遇到的东西,所以稍微写了点公司里的项目,抛砖引玉把,写的不好勿喷,纯粹上班打发一下时间的。废话不多说,我直接举两个接口例子,一个登陆,一个上传接口。下面是登陆接口的接口调用方法
拿这个接口来说,其实就是相比我们用afn来说,就是自己把一些东西写上去,跟后台沟通好,需要传哪些字段给他,拼接上去就可以了。一般的webservice接口,基本就跟这个样子了。
这个操作是当登陆回调成功200之后,那么根据你们项目需求所需的一些东西,比如我这儿就是要下载许多的xml信息,其中因为一些保密性原因,会获得一个用户的唯一签名,这个东西接下来的所有接口都是需要这个签名来进行网络请求的。就写这么多了,领导来查岗了。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:Java调用webservice接口方式 - 蒂鸥维毅 - ITeye技术网站
博客分类:
以前只听说过webservice,从来没有真正的接触过,今天有个工单,要掉接口,接过来发现是weiservice的,瞬间凌乱啊。
网上搜了好多的资料,感觉都太笼统,没有什么具体的步骤,下面我便把我自己的具体实践步骤记录一下,供那些初次使用webservice(java版)的童鞋一个借鉴。如有问题,还请大神多多指教。。。。。。。。
1、接口地址:
将该地址在浏览器中输入,然后会出现一个页面,找到其中的一个含有wsdl的URL,本接口中的URL为:
2、利用上面地址,生成调用接口的java代码
首先需要axis的jar包,我下载的是axis-bin-1_4.zip
然后解压该zip包,然后在axis加压后的文件夹下,编写一bat脚本文件(windows系统下),具体代码如下:
set Axis_Lib=C:\Users\Administrator\Desktop\axis-1_4\lib
set Java_Dir=C:\Java\jdk1.6.0_10\bin
set ava_Cmd=%Java_Dir%\java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=C:\Uses\Administrator\Desktop\axis-1_4\src
set Package=com.ubs.ws
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java http://IP:8080/MediaInterface/BaseInfoService.svc?wsdl -o%Output_Path% -p%Package% -t
里面的参数,根据自己机器的具体情况,自行配置
切记,地址配置中一定不要含有空格
如果运行正确,没有报错的话,会在axis文件夹下生成一个src目录,然后里面就是你想要的java类了。
BaseInfoService.java
BaseInfoServiceLocator.java
BaseInfoServiceTestCase.java(这个是个junit测试工具类,可以不要)
BasicHttpBinding_IBaseInfoServiceStub.java
IBaseInfoService.java
3、调用接口,开始联调
将生成的java类,复制到自己的项目中,当然,肯定用缺少很多jar包,需要自己根据报错信息,自行下载并添加(要有耐心)。
调用代码:
BasicHttpBinding_IBaseInfoServiceStub baseInfoServiceStub = new BasicHttpBinding_IBaseInfoServiceStub();
baseInfoServiceStub.syncSaleClues("ddd");
System.out.println(str);
这样调用的话,会报出如下异常:
Exception in thread "main" AxisFault
faultCode: {http://xml.apache.org/axis/}Server.NoEndpoint
faultSubcode:
faultString: No endpoint
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}exceptionName:org.apache.axis.NoEndPointException
{http://xml.apache.org/axis/}stackTrace:No endpoint
at com.china.ubs.ws.BasicHttpBinding_IBaseInfoServiceStub.syncSaleClues(BasicHttpBinding_IBaseInfoServiceStub.java:1084)
at com.china.ubs.ws.TestClass.test(TestClass.java:34)
at com.china.ubs.ws.TestClass.main(TestClass.java:25)
{http://xml.apache.org/axis/}hostname:
No endpoint
at com.china.ubs.ws.BasicHttpBinding_IBaseInfoServiceStub.syncSaleClues(BasicHttpBinding_IBaseInfoServiceStub.java:1084)
at com.china.ubs.ws.TestClass.test(TestClass.java:34)
at com.china.ubs.ws.TestClass.main(TestClass.java:25)
通过查找发现,应该这么写:
BaseInfoServiceLocator service = new BaseInfoServiceLocator();
BasicHttpBinding_IBaseInfoServiceStub baseInfoServiceStub = (BasicHttpBinding_IBaseInfoServiceStub)service.getBasicHttpBinding_IBaseInfoService();
String str = baseInfoServiceStub.syncSaleClues("ddd");
System.out.println(str);
这样调用java调用webservice接口就完成了。剩下的就是联调工作
浏览: 308447 次
来自: 北京
你好,你的这个,我不知道放在哪个位置。可以分享一下吗?谢谢
有jar包,我没找到可下载的资源 求帮忙
遇到这个问题,请先检查是不是又Path相同了.
非常感谢您
如果 这里的username和password 我想用环境变量 ...java调用webservice接口 几种方法
- 匣子疯子 - ITeye技术网站
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.D
import java.text.DateF
import org.apache.axis.client.C
import org.apache.axis.client.S
import javax.xml.namespace.QN
import java.lang.I
import javax.xml.rpc.ParameterM
public class caClient {
public static void main(String[] args) {
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.V
public class caService{
public static String getService(String user) {
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);
// 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();
// 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实现的具体细节不感兴趣,那么你只需要看接口文件即可,在使用的时候,引入这个接口即可,就好像使用本地类一样。
浏览 47805
浏览: 293060 次
来自: 珠海
没看到word文件啊
如何在java Web项目中开发WebService接口,地址 ...
元素不对应啊
非常好,再次感谢&&完如何在java Web项目中开发WebService接口之前没怎么接触过WebService,能不能提供点详细的步骤呀!求大神们指导3个牛币所有回答列表(6)&LV2花点时间,用MyEclipse给你写一下步骤吧1、新建立一个javaWeb项目,一个java类,如图:2、接下来我们就要将项目中的TestService的这个类生成WebService服务端,选择new Web Service,如图:Next,选择java文件,如图:Finish。你会看见项目中会自动生成一些文件,好,下面我们来启动项目,你会发现报异常,如图:接下来我们要在项目中加入JAX-RS。具体有哪些我忘记了。我这里就全部引入了。如图:点击filish,然后重新编译,启动项目,你会发现项目已经正常启动,OK,我们的webService服务端已完成,访问以下试试看,如图:开会,回来继续写 Client端。好,我们继续,下面我们新建一个java项目来测试webService接口,项目创建完毕后选择new Web Service Client 如图:选择java项目,next,如图:WSDL URL为 webservice服务的访问呢地址,Client文件将会生成在java package下,如图:Next -- Next -- Finish。你会看到java package目录中生成一些文件。此时客户端已完成。我们来新建一个类来测试接口,如图:PS:有错别字,抱歉哈....好了,就到这里吧! & & -- Coffee_冬孓最佳答案2、接下来我们就要将项目中的TestService的这个类生成WebService服务端,选择new Web Service,如图:不明确啊,在哪选择啊上电视了jersey &rest风格webservice &配置简单&不错 很好 值得 学习我的为什么访问不到页面啊,大神,我用的是myeclipse8.5等等等等等完等等等完完等最热搜索问答话题编程语言基础Web开发数据库开发客户端开发脚本工具游戏开发服务器软硬件开源组件类库相关问答等完等完等等完完等完等等最近浏览暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级扫描二维码关注最代码为好友"/>扫描二维码关注最代码为好友

我要回帖

更多关于 axis webservice客户端 的文章

 

随机推荐