springboot集成webservice接口

springboot集成webservice接口,第1张

1、增加maven依赖

2、增加webservice配置类

3、增加提供服务的接口和接口实现类

这里接口的命名空间 targetNamespace 必须要有,没有的话报错

接口实现类中各种参数定义好

4、启动并通过postman调试

启动后本例通地址 >[ServiceContract()]

public interface IMyService

{

    [OperationContract]

    [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyleBare, UriTemplate = "user/avatar")]

    void UploadUserAvatar(Stream ins);

}

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsModeAllowed)]

public class MyService : IMyService

{

    public void UploadUserAvatar(Stream ins)

    {

        // 将保存至1png

        using (FileStream fs = new FileStream("C:\1png", FileModeOpenOrCreate, FileAccessWrite))

        {

            BinaryReader reader = new BinaryReader(ins);

            byte[] buffer;

            BinaryWriter writer = new BinaryWriter(fs);

            long offset = fsLength;

            long len = 0;

            writerSeek((int)offset, SeekOriginBegin);

            do

            {

                len += 1024;

                buffer = readerReadBytes(1024);

                writerWrite(buffer);

            } while (bufferLength > 0);

            fsClose();

            readerDispose();

            writerDispose();

        }

    }

}

本Guide利用Eclipse以及Ant建立一个简单的WebService,以演示WebService的基本开发过程:1系统条件:EclipseJavaEEIDEforWebDevelopersJavaSE6WindowsXP2基本环境搭建:1)JavaSE6JDK的安装:下载JavaSE6JDK,双击,安装默认选项进行安装即可。2)Eclipse的安装与配置:安装时直接解压。配置处有两点,Window>Preferences>Java>InstalledJREs确保如下设置:安装路径可能略有不同。Window>Preferences>Java>Compiler确保如下设置:3建立Server端工程和相关包与类:创建一个JavaProject,命名为wsServerHelloWorld:在这个项目下建立包:orggnuhpcwsServer在这个包下边建立类:SayHello在SayHellojava文件中输入以下代码:packageorggnuhpcwsServer;importjavaxjwsWebService;@WebServicepublicclassSayHello{privatestaticfinalStringSALUTATION="Hello";publicStringgetGreeting(Stringname){returnSALUTATION+""+name;}}其中注意到@WebService,这个称作annotation或者metadata,JavaSE5中的WebServicesMetadataSpecification引入的。JavaSE6中对于WebServices规范的升级以及JAX-WS(JavaAPIforXMLWebServices)20规范,这些升级使得我们WebServices的创建和调用变得更加容易。使用这些新功能,我们可以仅仅使用简单的Annotations注释从一个Java类创建WebServices。开发者将其类和方法之前用该annotations指定,类告诉runtimeengine以WebService的方式和 *** 作来使能该类和方法。这个annotations可以产生一个可布署的WebService,是一个WSDL映射annotations,将Java源代码与代表WebService的WSDL元素连接在了一起。4使用Ant产生Server端代码:首先在项目中新建一个文件:buildxml,然后使用OpenWith>AntEditor打开,输入以下脚本代码:default指定了默认执行的Target为wsgen,wsgen可以创建一个能够使用WebService的类,它生成所有用于WebService发布的源代码文件和经过编译过的二进制类文件。它还生成WSDL和符合规范的该类的WebService。Target名称为wsgen,具体执行的命令的参数:-cp为类路径-keep后产生的java文件-s产生的源文件放在哪-d产生的输出问价放在哪然后使用AntBuild选项运行:在成功执行的提示后,我们刷新一下Project我们在Project区域可以看到,结果如下:5分布WebServiceorggnuhpcwsServer下建立一个类RunService:packageorggnuhpcwsServer;importjavaxxmlwsEndpoint;publicclassRunService{/@paramargs/publicstaticvoidmain(String[]args){Systemoutprintln("SayHelloWebServicestarted");Endpointpublish(">

方法/步骤在进行webservice客户端开发时,首先需要获取到服务端的webservice服务地址,根据服务地址以及通讯协议创建对应的客户端请求。如果对方提供的是一个服务地址,可以通过浏览器将复制粘贴进去。从页面上可以看出这是一个基于axis框架生成的一个webservice服务端。在服务端地址后面加上“wsdl”(注意是英文的问号),在页面中就可以看到服务端公布出来的各种服务、命名空间等其他信息。通过element可以看出,服务端公布出来两个方法:sayHello和sayNo。后面带有Response的说明是服务端返回的信息。根据服务端提供的地址,在soapUI工具上创建webservice客户端请求。打开soapUI软件,在软件的左上角点击file文件,在d出页面中有三种方式,一般新增的使用第一种new soapUI project新建一个soapUI项目。点击新建soapUI项目之后,在d出框中,需要输入服务端的地址(注意地址后面要加上"wsdl"英文符号),Project Name项目名称可以有汉字,能够自己区分是哪个服务端的项目即可。其他的值选择默认即可,不需要勾选其他选项,点击Ok即可创建好项目。服务端方法公布展示。通过服务端的地址,创建一个soap项目之后,soapUI就自动解析服务端提供的方法接口。从示例中可以看出这个服务对外提供了两个服务接口sayHello和sayNo。点开其中的Request 1可以看到这个请求的报文信息以及这个请求需要的参数和参数类型。消息的报文头信息和命名空间已经通过soapUI工具自动生成,在发送报文的时候只需要填写必要的入参即可。模拟客户端发送请求。在客户端输入需要的参数之后,点击左上角的“发送”按钮就可以模拟客户端请求发送。发送完成后,在右侧就可以看到服务端返回的信息,这就是整个消息发送请求和返回的全流程。wsdl文件方式的处理。对于有些服务端提供的不是类似上面的地址服务器,而是一些wsdl文件的方式。打开wsdl文件可以看到和在浏览器中打开服务端地址展示的内容相同,只是提供的方式不同而已。文件的格式可以是xml或者是wsdl的格式。通过wsdl文件内容创建project。点击File文件下面的“creates a new soapUI project“。通过选择一个文件的方式,就可以根据wsdl报文内容的方式创建客户端。点击右侧的Browse浏览按钮,找到wsdl文件文件,这个文件的后缀可以是wsdl的方式也可以是xml的方式,然后点击打开即可将文件导入到soapUI中,和服务地址类似,输入项目的名称,其他默认,点击OK即可创建成功。MyService是通过服务地址的方式创建,MyService2222是通过wsdl文件内容的方式创建的。通过比对可以看出,这两种方式创建的客户端是一致的。同样解析出sayHello和sayNo服务。END注意事项服务端地址后面添加的“wsdl”必须要求是英文的问号通过文件(后缀wsdl或者xml)的方式创建的时候,要保障文件头没有多余的空格空行。

CXF 可以记录报文日志,如果是Spring:

<jaxws:inInterceptors>

<bean

class="orgapachecxfinterceptorLoggingInInterceptor" />

</jaxws:inInterceptors>

代码也可以:

Client proxy =

ClientProxygetClient(port);

proxygetInInterceptors()add(new

LoggingInInterceptor());

摘自萝莉的小背篓的回答。

以上就是关于springboot集成webservice接口全部的内容,包括:springboot集成webservice接口、关于.NET HTTP的POST请求获取报文体的问题、如何定义webservice响应的soap报文等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10082859.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存