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格式的字符串,比较容易对其进行解析,取得想要的数据。

香港服务器租用多少钱一个月?影响香港服务器租用价格因素

香港服务器租用多少钱一个月?香港服务器受到很多朋友的青睐,其中免备案成为其特色之一。很多用户想了解香港云服务器价格多少钱,也有同行询问香港服务器的租赁价格,一些实际用户想要了解香港服务器的市场。虽然价格是关注的焦点,但价格并不是香港服务器的全部选择。今天小编介绍了一些影响香港服务器租赁价格的因素,以及在香港租一个月的服务器要花多少钱。影响香港服务器租赁价格的因素:1.香港机房选择香港机房相当于选择...

HostNamaste$24 /年,美国独立日VPS优惠/1核1G/30GB/1Gbps不限流量/可选达拉斯和纽约机房/免费Windows系统/

HostNamaste是一家成立于2016年3月的印度IDC商家,目前有美国洛杉矶、达拉斯、杰克逊维尔、法国鲁贝、俄罗斯莫斯科、印度孟买、加拿大魁北克机房。其中洛杉矶是Quadranet也就是我们常说的QN机房(也有CC机房,可发工单让客服改机房);达拉斯是ColoCrossing也就是我们常说的CC机房;杰克逊维尔和法国鲁贝是OVH的高防机房。采用主流的OpenVZ和KVM架构,支持ipv6,免...

10gbiz七月活动首月半价$2.36/月: 香港/洛杉矶CN2 GIA VPS

10gbiz怎么样?10gbiz 美国万兆带宽供应商,主打美国直连大带宽,真实硬防。除美国外还提供线路非常优质的香港、日本等数据中心可供选择,全部机房均支持增加独立硬防。洛杉矶特色线路去程三网直连(电信、联通、移动)回程CN2 GIA优化,全天低延迟。中国大陆访问质量优秀,最多可增加至600G硬防。香港七星级网络,去程回程均为电信CN2 GIA+联通+移动,大陆访问相较其他香港GIA线路平均速度更...

java调用webservice为你推荐
svn服务器搭建怎样搭建本地svn服务器环境svn服务器搭建如何在本机搭建SVN服务器人肉搜索引擎怎样使用人肉搜索引擎?assemblyinfo求教如何修改AssemblyInfo.cs的版本号asp大马问:ASP是什么?ASP根据什么制作木马的?ASP木马和大马有什么区别?什么是生态系统生态系统的功能有什么?审计平台什么是审计工具文本框透明word文本框的背景图片怎样调透明度kjavaKJAVA业务信息费是什么东西啊,我怎么会被莫莫名其妙的扣掉11元啊activitygroupactivityGroup子activity跳转的问题
免费网站域名注册 服务器配置技术网 国内php空间 牛人与腾讯客服对话 qq数据库下载 元旦促销 qingyun 共享主机 泉州移动 中国电信宽带测速网 微软服务器操作系统 支付宝扫码领红包 跟踪路由命令 网购分享 湖南idc 电信宽带测速软件 nnt 腾讯服务器 ncp是什么 linux命令vi 更多