java调用webservicejava 怎样调用本地webservice

java调用webservice  时间:2021-06-02  阅读:()

java 如何实现webservice 怎么调用接口

一、利用jdk?web服务api实现,这里使用基于SOAP?message的Web服务   ①.首先建立一个Web?services?EndPoint:package?Hello;  import?javax.jws.WebService;  import?javax.jws.WebMethod;  import?javax.xml.ws.Endpoint;   @WebService  public?class?Hello?{   @WebMethod  public?String?hello(String?name)?{  return?"Hello,?"?+?name?+?" ";  }   public?static?void?main(String[]?args)?{   //?create?and?publish?an?endpoint   Hello?hello?=?new?Hello(); Endpoint?endpoint?=?Endpoint.publish(" ,?hello);  }  }  ②.使用apt编译Hello.java(例:apt?-d?[存放编译后的文件目录]?Hello.java?)?, 会生成jaws目录  ③.使用java?Hello.Hello运行,然后将浏览器指向 就会出现下列显示  ④.使用wsimport生成客户端使用如下:   wsimport?-p?.?-keep? 这时,会在当前目录中生成如下文件:  ⑤.客户端程序: 1?class?HelloClient{ 2?public?static?void?main(String?args[])?{ 3?HelloService?service?=?new?HelloService(); 4?Hello?helloProxy?=?service.getHelloPort(); 5?String?hello?=?helloProxy.hello("你好"); 6?System.out.println(hello); 7?} 8?}以上方法还稍显繁琐,还有更加简单的方法   二、使用xfire,我这里使用的是myeclipse集成的xfire进行测试的利用xfire开发WebService,可以有三种方法: ? ?1. 一种是从javabean中生成;  2.?一种是从wsdl文件中生成; ? ?3. 还有一种是自己建立webservice   步骤如下:   用myeclipse建立webservice工程,目录结构如下:首先建立webservice接口, 代码如下: ????1?.myeclipse.wsExample;   2?//Generated?by?MyEclipse   3   4?public?interface?IHelloWorldService?{   5 ????6?public?String?example(String?message);   7   8?} 接着实现这个借口: ????1?.myeclipse.wsExample;   2?//Generated?by?MyEclipse   3   4?public?class?HelloWorldServiceImpl?implements?IHelloWorldService?{   5   6?public?String?example(String?message)?{   7?return?message;   8?}   9   10?}   修改 service.xml文件,加入以下代码:   1?<service>   2?<name>HelloWorldService</name>   3?<serviceClass>   .myeclipse.wsExample.IHelloWorldService   5?</serviceClass>   6?<implementationClass>   .myeclipse.wsExample.HelloWorldServiceImpl   8?</implementationClass>   9?<?style>wrapped</style>   10?<use>literal</use>   11?<scope>application</scope>   12  </service> 把整个项目部署到tomcat服务器中打开浏览器,输入http://localhost:8989/HelloWorld/services/HelloWorldService?wsdl,可以看到如下: 然后再展开HelloWorldService后面的wsdl可以看到:  客户端实现如下:  ??1?.myeclipse.wsExample.client;   2   3?import?.MalformedURLException;   4?import?.URL;   5   6?.codehaus.xfire.XFireFactory;   7?.codehaus.xfire.client.Client;   8?.codehaus.xfire.client.XFireProxyFactory;   9?.codehaus.xfire.service.Service;  ??10?.codehaus.xfire.service.binding.ObjectServiceFactory;   11   12?.myeclipse.wsExample.IHelloWorldService;   13   14?public?class?HelloWorldClient?{   15?public?static?void?main(String[]?args)?throws?MalformedURLException,?Exception?{   16?//?TODO?Auto-generated?method?stub   17?Service?s=new?ObjectServiceFactory().create(IHelloWorldService.class);   18?XFireProxyFactory?xf=new?XFireProxyFactory(XFireFactory.newInstance().getXFire());   19?String?url="   20   21?try   22?{   23 ????24?IHelloWorldService?hs=(IHelloWorldService)?xf.create(s,url);   25?String?st=hs.example("zhangjin");     26?System.out.print(st);   27?}     28?catch(Exception?e)   29?{   30?e.printStackTrace();   31?}   32?}   33   34?}? ??有时候我们知道一个wsdl地址,比如想用java客户端引做得webservice,使用myeclipse引用,但是却出现无法通过验证的错误,这时我们可以直接在类中引用,步骤如下: 1.?public?static?void?main(String[]?args)?throws?MalformedURLException,?Exception?{ 2.?//?TODO?Auto-generated?method?stub

Java中怎样口述 调用webservice接口(比如订单,天气),还有 树形结构菜单怎样口述

建立个普通的web工程就可以 服务器端首先需要导入对应的包,在web-inf下面建立server-config.wsdd,具体里面的内容大致如下 <ns1:deployment xmlns="/axis/wsdd/" xmlns:java="/axis/wsdd/providers/java" xmlns:ns1="/axis/wsdd/"> <ns1:globalConfiguration> <ns1:parameter name="sendMultiRefs" value="true"/> <ns1:parameter name="disablePrettyXML" value="true"/> <ns1:parameter name="adminPassword" value="admin"/> <ns1:parameter name="attachments.Directory" value=""/> <ns1:parameter name="dotNetSoapEncFix" value="true"/> <ns1:parameter name="enableNamespacePrefixOptimization" value="false"/> <ns1:parameter name="sendXMLDeclaration" value="true"/> <ns1:parameter name="sendXsiTypes" value="true"/> <ns1:parameter name="attachments.implementation" value=.apache.axis.attachments.AttachmentsImpl"/> <ns1:requestFlow> <ns1:handler type=".apache.axis.handlers.JWSHandler"> <ns1:parameter name="scope" value="session"/> </ns1:handler> <ns1:handler type=".apache.axis.handlers.JWSHandler"> <ns1:parameter name="scope" value="request"/> <ns1:parameter name="extension" value=".jwr"/> </ns1:handler> </ns1:requestFlow> </ns1:globalConfiguration> <ns1:handler name="URLMapper" type=".apache.axis.handlers.http.URLMapper"/> <ns1:handler name="LocalResponder" type=".apache.axis.transport.local.LocalResponder"/> <ns1:handler name="Authenticate" type=".apache.axis.handlers.SimpleAuthenticationHandler"/> <ns1:service name="AdminService" provider="java:MSG"> <ns1:parameter name="allowedMethods" value="AdminService"/> <ns1:parameter name="enableRemoteAdmin" value="false"/> <ns1:parameter name="className" value=.apache.axis.utils.Admin"/> <ns1:namespace>/axis/wsdd/</ns1:namespace> </ns1:service> <ns1:service name="Version" provider="java:RPC"> <ns1:parameter name="allowedMethods" value="getVersion"/> <ns1:parameter name="className" value=.apache.axis.Version"/> </ns1:service> <ns1:operation name="getTest" qname="ns1:getTest" returnQName="ns1:getTestReturn" returnType="xsd:string" soapAction="" xmlns:ns1="" xmlns:xsd="/2001/XMLSchema" xmlns:ns2="/axis/wsdd/"> <ns1:parameter qname="ns1:filetype" type="xsd:string"/> </ns1:operation> <ns1:parameter name="allowedMethods" value="*"/> <ns1:parameter name="typeMappingVersion" value="1.2"/> <ns1:parameter name="wsdlPortType" value="TestWebService"/> <ns1:parameter name="className" value=.test.web.TestWebService"/> <ns1:parameter name="wsdlServicePort" value="TestWebService"/> <ns1:parameter name="schemaQualified" value=""/> <ns1:parameter name="wsdlTargetNamespace" value=""/> <ns1:parameter name="wsdlServiceElement" value="TestWebServiceService"/> </ns1:service> <ns1:transport name="http"> <ns1:requestFlow> <ns1:handler type="URLMapper"/> <ns1:handler type=".apache.axis.handlers.http.HTTPAuthHandler"/> </ns1:requestFlow> <ns1:parameter name="qs:list" value=.apache.axis.transport.http.QSListHandler"/> <ns1:parameter name="qs:wsdl" value=.apache.axis.transport.http.QSWSDLHandler"/> <ns1:parameter name="qs.list" value=.apache.axis.transport.http.QSListHandler"/> <ns1:parameter name="qs.method" value=.apache.axis.transport.http.QSMethodHandler"/> <ns1:parameter name="qs:method" value=.apache.axis.transport.http.QSMethodHandler"/> <ns1:parameter name="qs.wsdl" value=.apache.axis.transport.http.QSWSDLHandler"/> </ns1:transport> <ns1:transport name="local"> <ns1:responseFlow> <ns1:handler type="LocalResponder"/> </ns1:responseFlow> </ns1:transport> </ns1:deployment> 里面定义了要调用的类的名称路径及其中方法,传入参数等 提供的类就是个普通的类文件 TestWebService { public String getTest(String filetype){ return "test"; } } 调用的类访问接口类似 public void getStr(){ try { Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new .URL("http://localhost:8090/test/services/TestWebService?wsdl")); call.setOperationName(new QName("", "getTestReturn")); call.addParameter("filetype", org.apache.axis.Constants.XSD_STRING, javax.xml.rpc.ParameterMode.IN); .apache.axis.Constants.XSD_STRING); try { String ret = (String) call .invoke(new Object[] { "1",}); List list= xmlToList(ret); for(int i=0;i<list.size();i++){ System.out.println( ((String[])list.get(i))[0]); System.out.println( ((String[])list.get(i))[1]); } } catch (IOException e) { e.printStackTrace(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (ServiceException e) { e.printStackTrace(); } } 上述代码不保证能正确运行,是从能运行的版本修改的,最好再参照相应的资料进行理解

java如何调用webservice接口

简单来说就是你编写的webservice 是要有xml文件来进行配置的 你的接口名 方法名 这样就能向外发布接口,外面的接口也是通过配置你电脑或是服务器的ip地址加上你的接口名称就能调用你的webservice接口了。

java 怎样调用本地webservice

WebService是基于Web的服务,WebService使用SOAP协议实现跨编程语言和跨操作系统平台,接收和响应外部系统的某种请求,从而实现远程调用。

WebService采用HTTP协议传输数据,采用XML格式封装数据,SOAP协议=HTTP协议+XML数据格式。

主要解决不了不同的系统或者调用分布部署的处理数据项目返回的接口。

第一种,采用httpclient请求,这种跟经常用的HTTP请求一样,结果可以是返回XML格式的字符串,比较容易对其进行解析,取得想要的数据。

Ceraus24元/月,国庆促销 香港云上新首月五折

Ceraus数据成立于2020年底,基于KVM虚拟架构技术;主营提供香港CN2、美国洛杉矶CN2、日本CN2的相关VPS云主机业务。喜迎国庆香港上新首月五折不限新老用户,cera机房,线路好,机器稳,适合做站五折优惠码:gqceraus 续费七五折官方网站:https://www.ceraus.com香港云内存​CPU硬盘流量宽带优惠价格购买地址香港云2G2核40G不限5Mbps24元/月点击购买...

ThomasHost(月付5美元)美国/法国/英国/加拿大KVM,支持Windows

ThomasHost域名注册自2012年,部落最早分享始于2016年,还算成立了有几年了,商家提供基于KVM架构的VPS,数据中心包括美国、法国、英国、加拿大和爱尔兰等6个地区机房,VPS主机套餐最低2GB内存起步,支持Windows或者Linux操作系统,1Gbps端口不限制流量。最近商家提供了一个5折优惠码,优惠后最低套餐月付5美元起。下面列出部分套餐配置信息。CPU:1core内存:2GB硬...

ZoeCloud:香港BGP云服务器,1GB内存/20GB SSD空间/2TB流量/500Mbps/KVM,32元/月

zoecloud怎么样?zoecloud是一家国人商家,5月成立,暂时主要提供香港BGP KVM VPS,线路为AS41378,并有首发永久8折优惠:HKBGP20OFF。目前,解锁香港区 Netflix、Youtube Premium ,但不保证一直解锁,谢绝以不是原生 IP 理由退款。不保证中国大陆连接速度,建议移动中转使用,配合广州移动食用效果更佳。点击进入:zoecloud官方网站地址zo...

java调用webservice为你推荐
企鹅医生共享体检真的方便吗股价图给你一张股票图你是怎么分析的具体的说y码亚洲码男女尺码是多少?qq博客怎么开QQ博客啊视频技术视频编辑是干什么的,主要是做一些什么工作呢?这个职位好不好?发展前景怎么样?华为总裁女儿为啥姓孟任正非女儿为什么姓孟?awv如何把普通电影转换成AWV防火墙排名什么防火墙最好jstz举手望,草上马跑,打什么数字?数据挖掘项目什么是数据挖掘?从事相关的工作有什么要求?
独立ip主机 免费网站空间 域名邮箱 汉邦高科域名注册 腾讯云盘 云网数据 a2hosting 息壤主机 bash漏洞 payoneer 发包服务器 java虚拟主机 cdn联盟 秒杀汇 万网空间购买 个人免费主页 双线机房 河南移动梦网 lick 电信网络测速器 更多