您的位置:首页 > 其它

WebService 实例应用

2013-04-18 00:07 218 查看
两个工程 分别部署在两台电脑上: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>

然后创建类:

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工程

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 中 必须记住的几样

1 SOAP

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

2
WSDL

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

3 额。。。3是什么我给忘了 以后补充
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: