服务器端
首先要在pom文件中增加一些内容,吧cxf的jar包利用maven下载下来
<properties>
<!-- 文件拷贝编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 输出编码 -->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 编译编码 -->
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<!-- CXF版本 -->
<cxf.version>3.1.1</cxf.version>
</properties>
<dependencies>
<!-- CXF -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<!-- 如果CXF不集成到Web服务器中,必须添加该引用 -->
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
</dependency>
<!-- End CXF -->
然后我们创建一个接口
@WebService(name = "HelloWS",
targetNamespace = "http://benzhu/services/hello")
public interface HelloWS {
@WebMethod
String welcome(@WebParam(name = "name") String name);
}
@WebService 是用来标识 web服务的
@WebMethod 标识的是web的方法
@WebParam 是web服务的参数
targetNamespace 其实可以理解成java里的包的概念
详细的可以看
http://blog.csdn.net/xxssyyyyssxx/article/details/50292787
然后定义实现类
@WebService(
endpointInterface = "com.demo.HelloWS",
portName = "HelloWSPort",
serviceName = "HelloWSService",
targetNamespace = "http://benzhu/services/hello"
)
public class HelloWSImpl implements HelloWS {
@Override
public String welcome(String name) {
return "Welcome " + name;
}
}
这个webservice的作用就是 你提供一个字符串 他在前面加上Welcome 再返回
最后一步启动 webservice
public class CxfServer {
public static void main(String[] args) {
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setServiceClass(HelloWS.class);
//服务发布的地址
factory.setAddress("http://localhost:8999/services/hello");
factory.setServiceBean(new HelloWSImpl());
factory.create();
}
}
在浏览器输入http://localhost:8999/services/hello?wsdl
可以看到xml文件
下面编写客户端
public class Client {
public static void main(String[] args) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(HelloWS.class);
factory.setAddress("http://localhost:8999/services/hello");
HelloWS helloWS = factory.create(HelloWS.class);
String welcome = helloWS.welcome("pig");
System.out.println(welcome);
}
}
不出意外你可以在控制台输出Welcome pig