webservices

jaxws-webservice编程续

天大地大妈咪最大 提交于 2020-03-23 23:08:40
3 月,跳不动了?>>> 前言: 从今天开始,我们将学习如何使用Webservice进行二进制附件的传输,这一课题将分成两个部分: l 第一部分实现Client上传一个附件到服务端,服务端接收Client传过来的二进制附件后保存至本地。 第二部分实现Client上传一个Java复杂类型,该复杂类型中有一个字段叫myPhoto,为一个jpg/gif附件,服务端接受该上传的复杂类型,并把其中的二进制字段中的图片保存至本地。 以下是我们要存取的图片(搞笑一下啊) 目标: 1. 客户端用Webservice上传一个二进制文件,服务端收到客户端request后把二进制附件读出,保存至本地 一、编写Server端 1.1 制作Service端 package ctsjavacoe.ws.fromjava; import javax.jws.WebMethod; import javax.jws.WebService; import javax.xml.ws.Holder; import java.io.*; @WebService public class MTOMSimple { @WebMethod public void echoData(Holder<byte[]> data) { OutputStream os = null; ByteArrayInputStream bin =

jax-ws之webservice security(安全)续

旧街凉风 提交于 2019-12-05 21:36:23
前言: 第一天里说了如何用jax-ws去结合ssh框架。 在今天的教程中将会向大家详细讲述一个ws-security中的一个传统的”基于handler”来认证客户端传来的用户名密码的webservice. 客户端传过来一对用户名和密码,服务端进行认证。 当然,我们此处说这个用户名和密码的传送,那可不是用下面的这种形式来传送的哦: http://xxx.do?username=xxx&password=xxx 。 我们这个用户名和密码是带在soap报文中的, jax-ws用一个handler专门用于处理soap报文的。 一、书写Handler 1. 1 handler类 package ctsjavacoe.ws.fromjava; import java.util.*; import javax.servlet.http.HttpServletRequest; import javax.xml.namespace.QName; import javax.xml.soap.*; import javax.xml.ws.handler.MessageContext; import javax.xml.ws.handler.soap.*; import javax.xml.ws.soap.SOAPFaultException; import org.apache.cxf

jax-ws之webservice security(安全)

只谈情不闲聊 提交于 2019-12-05 21:36:10
前言: 在今天的学习中,我们讲开始过渡到一个真正的websecurity例子。 第二天中我们知道了如何使用handler来处理客户端提交上来的用户名与密码,而在今天的学习中,我们将会使用服务端预先配置的用户名与密码来authenticate客户端提交上来的值。 相对于第二天的学习,如果客户端提交的用户名与密码输错,但还是能够与服务端建立http连接来说,第三天中的例子的安 全性则更高,当客户端提交上来的用户名与密码错误则更本不可能和服务端建立起有效的http连接。该例子同时适用于一切J2EE AppServer,比如说:IBMWAS, ORACLE WEBLOGIC。 同时,通过该例子将讲述ws-security与相关的ws-policy进而一步步过渡到QoS。 一、配置服务端的相关角色 1.1 配置J2EE AppServer中的相关用户名与密码 打开tomcat下的cnof/tomcat-user.xml文件: <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="operator"/> <user username="tomcatws" password="123456" roles="operator"/> </tomcat-users> 通过上述配置

jax-ws之webservice security(安全)续

一世执手 提交于 2019-12-05 00:31:17
前言: 在前面的“5天学会jaxws-webservice教程”,我们讲了基本的jax-ws的使用。 Jax-ws是业界公认的标准的webservice,它已经成为了一个行业界标准,包括cxf,其实cxf也是调用的jax-ws为标准的基于spring的webservice框架。 同时,大家都知道世界上除了j2ee体系外,还存在.net体系,同时有过相关经验的同事们也知道用ws-security无非就是涉及到“加密”,“解密”,而JAVA的x509所涉及到的证书,公钥,私钥与.net体系之间是无法通用的。 但是webservice是因该属于无所谓语言的一个标准,因此为了让j2ee的webservice与.net的webservice能够互相调用(当然包括ws-security里的加密解密),SUN与微软联合推出了一个:WCF。 WCF是Windows Communication Foundation的缩写,原来代号为Indigo,它是MS为SOA(Service Oriented Architecture 面向服务架构)而设计的一套完整的技术框架。利用它能够开发出分布式(Distributed)应用程序,而且开发难度相比以前 的.NETRemoting和ASP.NETXML Web Service等都有了大幅度的降低。 那么搞J2EE的人如何去支持这个WCF呢?我们不可能去用

jaxws-webservice编程

早过忘川 提交于 2019-11-29 08:46:23
前言: 随着近几年来,SOA,EAI等架构体系的日渐成熟,Webservice越来越炽手可热,尤其是在企业做异质平台整合时成为了首选的技术。 Java的Webservice技术更是层出不穷,比较流行的有: Axis2,Spring WS以及Jaxws。 本人在日常工作和以往工程中,在使用了上述这些Webservice后进行了总结,比较,最终觉得jaxws是目前最标准,需要额外第三方插件最少,配置最少最灵活的webservice。 JAXWS适合几乎所有Webservice客户端的调用,因此不少巨头型的厂商如:IBM,Weblogic等,在他们的产品上都使用了以JAXWS为标准的Webservice接口。 本教程分成五天,为初级教程。 通过本教程,可以使一个没有Webservice概念或者没有写过Webservice的JAVA Resource快速上手入门,并能满足一般中小型项目中Webservice的应用。 对于Webservice Security,在(初级)教程中并不提供,会在高级教程中详细描述。 不过真正利用Webservice Security特性即XML加密技术的工程并不多,少之又少,大多还是以 http: //xxx/xxxService?userId=&password= 这样的形式来进行“假安全”通讯的。 必经我们的大部分项目是运行在Intranet里的

jaxws-webservice编程续

安稳与你 提交于 2019-11-29 08:45:43
第二天 前言: 大家都知道,仅仅输入或者返回一个简单型的String, Int在实际工作中没有太大的意义。很多时候我们的Service需要返回类似于List<Person>,List<String>这样的数据结构。 我们现在就一起来看用Jaxws怎么实现。 目标: 1. 用Webservice调用和返回Java的复杂类型(比如说:List<Student>这样的数据) 一、编写Server端 1.1先对jaxws返回List类型做一个简单的POC 在正式做我们的复杂类型返回前,我们先做一个试验来证明jaxws能否返回复杂类型即Collection这样的对象,我们先来试试用jaxws的webservice返回一个List<String>。 因为,webservice除简单类型如:int, string这些对象, 对于复杂类型的返回,它使用的是serialize和deserialize的机制。 即:在传送复杂对象时,webservice会把复杂类型serialize一下,在客户端得到server端的返回时再把对象deserialize出来,所以我们先用这个小实验来验证一下jaxws的serialize-deserialize的能力如何。 以下时我们的Server端代码: package ctsjavacoe.ws.fromjava; import java.util.*; import