以上就是给各位分享WebService中的用户验证问题,其中也会对webservice验证进行解释,同时本文还将给你拓展axis2实现webservice之使用services.xml文件发布WebS
以上就是给各位分享WebService中的用户验证问题,其中也会对webservice 验证进行解释,同时本文还将给你拓展axis2实现webservice之使用services.xml文件发布WebService、PHP使用SOAP扩展实现WebService的方法 webservice视频教程 c# webservice php webservice、php写webservice,验证问题如何解决?、web-services – Webservice和Enterprise Service Bus之间的区别等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- WebService中的用户验证问题(webservice 验证)
- axis2实现webservice之使用services.xml文件发布WebService
- PHP使用SOAP扩展实现WebService的方法 webservice视频教程 c# webservice php webservice
- php写webservice,验证问题如何解决?
- web-services – Webservice和Enterprise Service Bus之间的区别
WebService中的用户验证问题(webservice 验证)
axis2实现webservice之使用services.xml文件发布WebService
还是对教程的延伸,本来是周五要写的,但是耽搁了一下,就拖到周一了。
用Axis2实现Web Service,虽然可以将POJO类放在axis2\WEB-INF\pojo目录中直接发布成Web Service,这样做不需要进行任何配置,但这些POJO类不能在任何包中。这似乎有些不方便,为此,Axis2也允许将带包的POJO类发布成Web Service。
先实现一个POJO类,代码如下:
这个类有两个方法,这两个方法都需要发布成Web Service方法。这种方式和直接放在pojo目录中的POJO类不同。要想将MyService类发布成Web Service,需要一个services.xml文件,这个文件需要放在meta-inf目录中,该文件的内容如下:
其中<service>元素用于发布Web Service,一个<service>元素只能发布一个WebService类,name属性表示WebService名,如下面的URL可以获得这个WebService的WSDL内容:
http://localhost:8080/axis2/services/myService?wsdl (这个得等到.aar文件出来之后)
其中name属性名就是上面URL中"?"和"/"之间的部分。
<description>元素表示当前Web Service的描述,<parameter>元素用于设置WebService的参数,在这里用于设置WebService对应的类名。在这里最值得注意的是<messageReceivers>元素,该元素用于设置处理WebService方法的处理器。例如,getGreeting方法有一个返回值,因此,需要使用可处理输入输出的RPcmessageReceiver类,而update方法没有返回值,因此,需要使用只能处理输入的RPCInOnlyMessageReceiver类。
使用这种方式发布WebService,必须打包成.aar文件,..aar文件实际上就是改变了扩展名的.jar文件。在现在建立了两个文件(这两个文件夹任意):MyService.java和services.xml。将MyService.java编译,生成MyService.class。services.xml和MyService.class文件的位置如下:
D:\ws\service\MyService.class
D:\ws\meta-inf\services.xml
在windows控制台中进入ws目录,并输入如下的命令生成.aar文件(实际上,.jar文件也可以发布webservice,但axis2官方文档中建议使用.aar文件发布webservice):
jar cvf ws.aar . jar cvf AxisTest.aar .
如下是我测试的过程
原来发现不管要.aar,之后还需要一个“.”,即.arr.,但是最坑爹的就是这里了,加了“.”之后还是不对啊,最后的问题居然是这个后面的点要空一格,不能紧挨着.arr
如下成功之后的文件夹情况
最后将ws.aar文件复制到<Tomcat安装目录>\webapps\axis2\WEB-INF\services目录中,启动Tomcat后,就可以调用这个WebService了。
已经显示webservice发布成功了,接下来就是编写客户端进行调运了,跟前面一样,也需要wsdl2java命令去生成stub类,过程我就不多说了,之前的博客里有
如下是调用客户端的代码
运行结果
由于“帅哥”是在服务器端打印的,所以客户端是看不到的。
在打包arr文件的时候,发现有一个build.xml文件,这个是ant脚本中的知识,在本题中暂时不涉及,以后再介绍。
如果想发布多个WebService,可以使用<serviceGroup>元素,如再建立一个MyService1类,代码如下:
在services.xml文件中可以使用如下的配置代码来配置MyService和MyService1类:
PHP使用SOAP扩展实现WebService的方法 webservice视频教程 c# webservice php webservice
php写webservice,验证问题如何解决?
查了一些资料,好像都是每一次调用webservice方法时,都需要附带客户验证信息,能否像普通的网页浏览那样,登录后,在会话期内任意访问都不需要再次提供客户验证信息呢?
回复讨论(解决方案)
在session中保留id
那是提供webservice方决定的!
那是提供webservice方决定的!
不单是提供webservice方决定,还有访问方式,比如使用basic验证,用浏览器访问的话,会提示一个验证框,如果验证通过,同一进程再次访问就不会提示框了。
我的问题在于curl请求webservice的话,似乎就必须每次都提供验证信息来完成调用。有没有一次验证的解决方案呢?
你查查看cookie,HTTP header中有没有id之类的值,每次请求的时候都要将这个值发给服务器
你查查看cookie,HTTP header中有没有id之类的值,每次请求的时候都要将这个值发给服务器
思路还是不够完整
你说的是浏览器验证
用户:$_SERVER[''PHP_AUTH_USER'']
密码:$_SERVER[''PHP_AUTH_PW'']
参考:http://php.net/manual/en/features.http-auth.php
你说的是浏览器验证
用户:$_SERVER[''PHP_AUTH_USER'']
密码:$_SERVER[''PHP_AUTH_PW'']
参考:http://php.net/manual/en/features.http-auth.php
应该不是我要的。我想问的包含两方面的问题:
1、开放的webservice有哪些验证机制?比如我说key是一种,http的basic验证也是一种,还有其他哪些方式呢?
2、想知道有哪些验证机制是为了这个目的:有没有一种验证机制,在php调用webservice时,只需在第一次请求中发送验证信息,以后调用就不需要再次验证了--类似于普通页面浏览的过程,填写一次登陆信息后,只要不超时,访问这个网站的其他任何页面都不需要再登陆。
引用 7 楼 ihefe 的回复:
你说的是浏览器验证
用户:$_SERVER[''PHP_AUTH_USER'']
密码:$_SERVER[''PHP_AUTH_PW'']
参考:http://php.net/manual/en/features.http-auth.php
应该不是我要的。我想问的包含两方面的问题:
1、开放的webservice有哪些验证机制?比……
这个就是只验证一次, 你试过我给你的代码吗?把最后
echo date(''h:i:s'');
header(''WWW-Authenticate: Basic realm=""'');
header(''HTTP/1.0 401 Unauthorized'');
去掉
呃也就是你说的http basic验证
今天回头来看这个问题,似乎可以用curl发送cookie的方式解决。
myservice.php
myproxy.php
myclient.php
用户在myclient.php(或者其他地方登陆),通过后可直接访问myproxy.php,在myproxy.php中通过curl的方式连同cookie一起请求myservice.php。
各位的意见如何?
lz说的完全可以采用session机制来实现,当你发送请求时,在服务器端建立session,服务器处理完用户请求后,将sid发送给客户端,客户端可以记录在cookie里,只要sid不过期,就不用重复发送验证信息了。session就是提供这种机制的。
lz说的完全可以采用session机制来实现,当你发送请求时,在服务器端建立session,服务器处理完用户请求后,将sid发送给客户端,客户端可以记录在cookie里,只要sid不过期,就不用重复发送验证信息了。session就是提供这种机制的。
但是session机制怎样应用到webservice中呢?
在session中保留id
在session中保留id
还是不够清楚,和我说的通过“curl代理将验证传递的方式”有什么不同吗?
不用每次都传密码的,这样有安全隐患,可以用临时的token来解决
直接不启用cookies啦、 session啦 等类似的机制不行吗 ?
哎,PHP就是没有完善的东西呀。
web-services – Webservice和Enterprise Service Bus之间的区别
根据我的理解,Enterprise Service Bus用于集成Service,以便任何其他应用程序可以使用和调用或集成. Web服务是Enterprise Service Bus中使用的方法之一.
解决方法
服务是可以从外部消费应用程序调用的公开功能的通用术语.大多数情况下,服务是由应用程序的集成层公开的.服务可以是Web服务 – 基于SOAP,REST等,因此WebService是使用SOAP的服务子类型.
将所有应用程序相互连接不能很好地扩展(通信渠道随着向环境添加越来越多的应用程序而呈指数级增长),从长远来看,这会导致昂贵的维护.这就是为什么我们使用中间件软件(ESB是一种中间件)作为暴露应用程序服务的唯一点.
那么Service和ESB有什么区别?
ESB上的“直播”服务.它们通常代表特定的功能上下文 – 例如客户,订单的业务环境.因此,如果您需要获取客户信息,则不直接转到CRM应用程序,而是向提供此功能的ESB服务发送请求.因此,您无需了解CRM本身.
ESB在实践中是一个中间件(如果您愿意,它是集成主干),它提供了轻松托管和实现服务的技术基础架构和工具,包括:
>路由机制
>用于不同协议的连接器和桥接器
>不同活动的听众
>实现不同通信模型的手段
>数据和模型转换意味着
>异步排队
>监控,记录
>政策集中化
>等
使用中间件可以大大减少系统之间点对点连接的数量,并且还可以实现更好的隔离和低级别的耦合,这意味着当您需要实现更改,在供应商之间切换等时更具灵活性.
有关服务的更多信息,我将建议see this article.整个网站都很棒,您可能想要探索它.此外,您可以看到有用的representation of ESB as compound SOA design pattern,.
我们今天的关于WebService中的用户验证问题和webservice 验证的分享已经告一段落,感谢您的关注,如果您想了解更多关于axis2实现webservice之使用services.xml文件发布WebService、PHP使用SOAP扩展实现WebService的方法 webservice视频教程 c# webservice php webservice、php写webservice,验证问题如何解决?、web-services – Webservice和Enterprise Service Bus之间的区别的相关信息,请在本站查询。
本文标签: