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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle 9i安装_oracle9i查看字符集

    oracle 9i安装_oracle9i查看字符集Oracle9iDatabaseRelease2Enterprise/Standard/PersonalEditionforWindowsNT/2000/XPhttp://download.oracle.com/otn/nt/oracle9i/9201/92010NT_Disk1.ziphttp://download.oracle.com/otn/nt/oracle9i/9201/…

    2025年6月28日
    0
  • 深入浅出TCP三次握手 (多图详解)[通俗易懂]

    深入浅出TCP三次握手 (多图详解)[通俗易懂]文章目录前言1、TCP是什么?2、TCP首部格式3、TCP的连接建立4、三次握手图文详解5、三次握手文字总结5、是否可以使用“两报文握手”建立连接?6、两次握手文字总结前言TCP三次握手和四次挥手是面试题的热门考点,它们分别对应TCP的连接和释放过程,今天我们先来认识一下TCP三次握手过程,以及是否可以使用“两报文握手”建立连接?。1、TCP是什么?TCP是面向连接的协议,它基于运输连接来传送TCP报文段,TCP运输连接的建立和释放,是每一次面向连接的通信中必不可少的过程。TCP运输连接有以下

    2022年10月4日
    0
  • javascript 页面后退并刷新

    javascript 页面后退并刷新javascript做页面后退常使用的方法是window.history.back();这样确实可以做到后退的功能,但是项目中,常常并不只是后退就行完成需求,往往需要在后退的同时,刷新后退的页面信息,比如后退到首页同时刷新首页的最新数据,这样的需求通过上面这种方法就没法满足了,为了实现这个需求,我们需要使用到document.referrer这个方法可以取到上一个页面的具体路径

    2022年7月25日
    9
  • swagger @ApiParam 参数设置为可为空却还是要求输入参数

    swagger @ApiParam 参数设置为可为空却还是要求输入参数

    2020年11月9日
    285
  • Cover Letter实用指南

    Cover Letter实用指南1、什么是CoverLetter?指的是投稿信2、coverletter的内容主要包括那些?应该简述所投稿件的核心内容、主要发现和意义,拟投期刊,对稿件处理有无特殊要求等(如“nottoreview”list)。另外,请附上主要作者的中文姓名、通讯地址、电话、传真和e-mail地址。此外有的杂志要求推荐几位审稿人及其联系方式。以及谁已经阅读过该文(当然是牛人)。

    2022年5月1日
    50
  • 一世12年龄在泥土还在打,硅谷00创业毕竟开始播放!

    一世12年龄在泥土还在打,硅谷00创业毕竟开始播放!

    2022年1月3日
    54

发表回复

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

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