WebService 实例应用

WebService 实例应用两个工程分别部署在两台电脑上:webservice_client客户端  webservice_server:服务器端先说服务器导入jar包改写xml文件:cxfcom.rainspnsor.webservice.CXFNonSpringServiceImpl0cxf/services/*然后创建类:1util中:

大家好,又见面了,我是你们的朋友全栈君。

两个工程 分别部署在两台电脑上:webservice_client 客户端    webservice_server:服务器端

先说服务器 导入jar包

改写xml文件:

<servlet>
<servlet-name>cxf</servlet-name>
<servlet-class>com.rainspnsor.webservice.CXFNonSpringServiceImpl</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>cxf</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

然后创建类:

WebService 实例应用

1 util中:先写个实体

package com.rainspnsor.util;

public class SysRequest {

/**
* 请求的文本内容
*/
private String reqText;

public String getReqText() {

return reqText;
}

public void setReqText(String reqText) {

this.reqText = reqText;
}

}

2再写个接口:

package com.rainspnsor.util;

public interface IHelloService {


/**


* 发送信息


* @param sysRequest


*/


public void sendMsg(SysRequest sysRequest);





public String getRespons();





public String getString();

}

3 写接口的实现类:

package com.rainspnsor.util;

public class HelloServiceImpl implements IHelloService {

public void sendMsg(SysRequest sysRequest) {

System.out.println(“发送的信息为:”+sysRequest.getReqText());
System.out.println(“=============”);
}

public String getRespons() {

System.out.println(“看看能接受到么”);
return “看看能接受到么”;
}

public String getString() {

return “999999”;
}


}

4 CXF 类的配置:

package com.rainspnsor.webservice;

import javax.servlet.ServletConfig;

import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.frontend.ServerFactoryBean;
import org.apache.cxf.transport.servlet.CXFNonSpringServlet;

import com.rainspnsor.util.HelloServiceImpl;
import com.rainspnsor.util.IHelloService;

public class CXFNonSpringServiceImpl extends CXFNonSpringServlet{


private static final long serialVersionUID = 1L;

@Override
protected void loadBus(ServletConfig sc) {

super.loadBus(sc);
//构建并设置了传输对象
Bus bus = getBus();
BusFactory.setDefaultBus(bus);
ServerFactoryBean serverFB = new ServerFactoryBean();

//设置webservice对应的接口
serverFB.setServiceClass(IHelloService.class);
//设置服务请求地址
serverFB.setAddress(“/hello”);
//设置服务的实现
serverFB.setServiceBean(new HelloServiceImpl());


//通过工厂创建服务
serverFB.create();
}



}

服务器配置搞定了!

然后是客户端 一个Java工程

WebService 实例应用

1 还是建实体 :

package com.rainsponsor.util;

public class SysRequest {

/**
* 请求的文本内容
*/
private String reqText;

public String getReqText() {

return reqText;
}

public void setReqText(String reqText) {

this.reqText = reqText;
}

}

2 配置接口 !!!接口一定要和服务器端的接口一致 

package com.rainsponsor.util;

public interface IHelloService {

/**
* 发送信息
* @param sysRequest
*/
public void sendMsg(SysRequest sysRequest);

public String getRespons();

public String getString();
}

3 在客户端中写信息:

package com.rainsponsor.client;

import org.apache.cxf.frontend.ClientProxyFactoryBean;

import com.rainsponsor.util.IHelloService;
import com.rainsponsor.util.SysRequest;

public class WebserviceTestUtils {

/**
* @param args
*/
public static void main(String[] args) {

SysRequest sysRequest = new SysRequest();
sysRequest.setReqText(“RP省架构订单,望审核!”);

ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
factory.setAddress(“http://192.168.0.123:8080/webservice_server/services/he”);
IHelloService helloService = factory.create(IHelloService.class);

// helloService.sendMsg(sysRequest);
String response = helloService.getString();
System.out.println(response);

}

}

最后 服务器必须运行 

在客户端中运行方法 在服务器就会显示 !

webservice 中 必须记住的几样 

SOAP 

简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。

WSDL

Web Service描述语言WSDL 就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。
3 额。。。3是什么我给忘了 以后补充

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162649.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月21日 下午1:46
下一篇 2022年7月21日 下午1:46


相关推荐

  • 密码库LibTomCrypt学习记录——(2.3)分组密码算法的工作模式——ECB代码示例

    密码库LibTomCrypt学习记录——(2.3)分组密码算法的工作模式——ECB代码示例以下代码实现了 AES ECB 的正确性测试 标准测试数据 以及性能测试说明 1 代码里面使用了一个 Str2Num 函数 它将测试向量中的字符串转为十六进制字节数据 可自行实现 2 测试向量出处为 NISTSP800 38A Recommendati MethodsandTe

    2026年3月20日
    2
  • SENet实战详解:使用SE-ReSNet50实现对植物幼苗的分类

    SENet实战详解:使用SE-ReSNet50实现对植物幼苗的分类摘要 1 SENet 概述 Squeeze and ExcitationNe 简称 SENet 是 Momenta 胡杰团队 WMW 提出的新的网络结构 利用 SENet 一举取得最后一届 ImageNet2017 竞赛 ImageClassif 任务的冠军 在 ImageNet 数据集上将 top 5error 降低到 2 251 原先的最好成绩是 2 991 作者在文中将 SENetblock 插入到现有的多种分类网络中 都取得了不错的效果 作者的动机是希望显式地建模

    2025年7月23日
    5
  • dotnetty java netty,Netty(DotNetty)原理解析

    dotnetty java netty,Netty(DotNetty)原理解析一 背景介绍 DotNetty 是微软的 Azure 团队 使用 C 实现的 Netty 的版本发布 不但使用了 C 和 Net 平台的技术特点 并且保留了 Netty 原来绝大部分的编程接口 让我们在使用时 完全可以依照 Netty 官方的教程来学习和使用 DotNetty 应用程序 Netty 是一个异步事件驱动的网络应用程序框架 用于快速开发可维护的高性能协议服务器和客户端 二 NIO 他并不是 Java 独有的概念 NI

    2026年3月18日
    2
  • Kimi Claw:在 Kimi 中使用 OpenClaw 完整指南

    Kimi Claw:在 Kimi 中使用 OpenClaw 完整指南

    2026年3月13日
    2
  • CSS属性

    CSS属性

    2022年3月4日
    36
  • yml文件解析

    yml文件解析yml 文件解析 YamlProperti 测试注意 YamlProperti 在开发过程中 遇到一个 yml 文件解析的功能 随手做个记录 具体要求是这样的 前段传递一个 key 后端通过这个 key 获取配置文件中的 key 对应着值 若是用 properties 文件的话 是比较好获取的 但是 yml 文件的话 通过我的各种尝试 最终用 org springframe

    2026年3月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号