CXF作为java领域主流的WebService实现框架
创建一个Maven 项目
在pom.xm贴上依赖
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.5</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>3.1.5</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-core</artifactId>
<version>3.1.5</version>
</dependency>
</dependencies>
创建一个接口类 HelloWorld
package com.gcx.service;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
public String say(String str);
}
package com.gcx.service.impl;
import javax.jws.WebService;
import com.gcx.service.HelloWorld;
@WebService
public class HelloWorldImpl implements HelloWorld {
public String say(String str) {
return "hello" + str;
}
}
对外暴露接口
package com.gcx.test;
import javax.xml.ws.Endpoint;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
import com.gcx.service.HelloWorld;
import com.gcx.service.impl.HelloWorldImpl;
public class ServerTest {
public static void main(String[] args) {
System.out.println("webService start");
HelloWorld implementor=new HelloWorldImpl();
String address="http://192.168.31.42/helloWorld";
//通过JDK实现暴露webService接口
//Endpoint.publish(address, implementor);
JaxWsServerFactoryBean factoryBean=new JaxWsServerFactoryBean();
factoryBean.setAddress(address);//设置暴露地址
factoryBean.setServiceClass(HelloWorld.class);//接口类
factoryBean.setServiceBean(implementor);//接口实现类
factoryBean.create();//创建webService接口
System.out.println("webService end");
}
}
我们在浏览器里访问: http://192.168.31.42/helloWorld?wsdl
出现如下:
说明已经成功调用了webservice接口;
这里的wsdl 是 Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。WSDL是Web Service的描述语言,用于描述Web Service的服务,接口绑定等,为用户提供详细的接口说明书。
请求后得到的是一个xml规范文档。是一套规范,任何语言平台技术都可以解析。