Jaxws学习笔记(一)入门程序之服务接口发布

在Java中一共有三种WebService规范,Jax-WS,JAXM,Jax-RS。

  1. Jax-WS(Java Api for XML-Based WebService)
  2. JAXM支持文件传输,暴露更多底层细节,不建议使用
  3. Jax-RS是针对Restful风格定制的一套Web服务规范(建议重点掌握)

JaxWS是实现例子入门

1.编写SEI

 

package cn.blueboz.ws;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

/**
 * Created by blueboz.chen on 2016/4/21.
 * 首先是编写SEI(Service Endpoint Interface)服务端点接口
 * SEI在WebService中称为PortType
 */
public interface IHelloWebService {
    public String sayHello(String username);
}

2.编写SEI实现类,此类作为WebService提供服务类

 

package cn.blueboz.ws.impl;

import cn.blueboz.ws.IHelloWebService;

import javax.jws.WebService;

/**
 * Created by blueboz.chen on 2016/4/21.
 */
@WebService(
        serviceName = "HelloWebServiceImpl"
)
public class HelloWebServiceImpl implements IHelloWebService {
    @Override
    public String sayHello(String username) {
        return "你好"+username+"!欢迎使用WebService!";
    }
}

3.发布服务(方式一)

 

这是第一种发布服务端的方式,通过Java内置的Endpoint进行发布WebService服务

 

 
package cn.blueboz.ws;  import cn.blueboz.ws.impl.HelloWebServiceImpl;  import javax.xml.ws.Endpoint;  /**  * Created by blueboz.chen on 2016/4/21.  */ public class Server {  public static void main(String[] args) {  Endpoint.publish("http://localhost:8888/Hello",new HelloWebServiceImpl());  } }

发布服务之后,我们可以打开终端,输入

C:\Users\Administrator> netstat -ano|findstr "8888"
  TCP    127.0.0.1:8888         0.0.0.0:0              LISTENING       18348
 

可以看到存在端口8888,因为我们Endpoint发布接口时指定发布端口是8888,所以看到了端口占用,接下来我们用浏览器打开

http://localhost:8888/Hello,只要能看到下面这个,就说明接口发布成功了!

4.发布服务方式二,使用CXF方式发布

要想使用CXF,必须先到Apache CXF下先下载CXF。

http://cxf.apache.org/

也可以在这里下载

http://download.csdn.net/detail/blueboz/9498010

我使用的版本是3.1.6.然后解压,可以看到如下的目录结构

bin文件夹包含需要使用的wsdl2java工具。就是生成客户端代码的工具。等

所以接下来我们需要配置环境变量,否则wsdl2java可能无法使用

新建如下环境变量

 

  1. CXF_HOME->cxf解压路径
  2. 在path环境变量追加;%CXF_HOME%\bin;
  3. 在ClassPath环境变量追加%CXF_HOME%\lib;

 

如果使用IDE开发,可以自己手动的把lib文件夹下所有的包导入。

这里之所以导入所有包,是为了教程方便,如果想自己尝试最小导包,可以从cxf-core开始,然后一个一个导入即可。

好了。

回到我们的IDE,新建另外一个类

 

 
package cn.blueboz.ws.impl;  import org.apache.cxf.endpoint.Server; import org.apache.cxf.jaxws.JaxWsServerFactoryBean;  /**  * Created by blueboz.chen on 2016/4/21.  */ public class CxfServer {  /**  * 通过CXF方式发布接口  * @param args  */  public static void main(String[] args) {  JaxWsServerFactoryBean factoryBean=new JaxWsServerFactoryBean();  factoryBean.setAddress("http://localhost:8888/Hello");  factoryBean.setServiceClass(HelloWebServiceImpl.class);  factoryBean.create();   } }

运行之后,访问地址,可以看到步骤三看到的页面就说明接口发布成功了。

至于客户端怎么调用,请看我的下一个博客

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值