按照CXF的用户文档上的描述,来写一个helloworld的webservice小实例!
第一步,新建一个名为“CXF_HelloWorld”的web project,加入如下jar包。
另外还需要加入spring的jar包。
第二步,配置web.xml,把CXFServlet配置到web.xml中
代码如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <servlet>
- <description>Apache CXF Endpoint</description>
- <display-name>cxf</display-name>
- <servlet-name>cxf</servlet-name>
- <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>cxf</servlet-name>
- <url-pattern>/services/*</url-pattern>
- </servlet-mapping>
- <session-config>
- <session-timeout>60</session-timeout>
- </session-config>
- </web-app>
第三步,编写webservice
HelloWorld.java
- package cxf.server;
- import javax.jws.WebMethod;
- import javax.jws.WebParam;
- import javax.jws.WebService;
- @WebService
- public interface HelloWorld {
- @WebMethod
- public String sayHello(@WebParam String message);
- }
HelloWorldImpl.java
- package cxf.server;
- public class HelloWorldImpl implements HelloWorld{
- @Override
- public String sayHello(String message) {
- // TODO Auto-generated method stub
- return message;
- }
- }
第四步,把编写好的服务部署到cxf-servlet.xml中
cxf-servlet.xmls放在web-inf目录下
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:jaxws="http://cxf.apache.org/jaxws"
- xmlns:soap="http://cxf.apache.org/bindings/soap"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
- http://cxf.apache.org/jaxws
- http://cxf.apache.org/schemas/jaxws.xsd">
- <jaxws:server id="HelloWorld" serviceClass="cxf.server.HelloWorld">
- <jaxws:serviceBean>
- <bean class="cxf.server.HelloWorldImpl" />
- </jaxws:serviceBean>
- </jaxws:server>
- </beans>
第五步,编写客户端调用webservice
客户端HelloWorldClient.java
- package cxf.client;
- import org.apache.cxf.interceptor.LoggingInInterceptor;
- import org.apache.cxf.interceptor.LoggingOutInterceptor;
- import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
- import cxf.server.HelloWorld;
- public class HelloWorld {
- public static void main(String[] args) {
- JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
- factory.getInInterceptors().add(new LoggingInInterceptor());
- factory.getOutInterceptors().add(new LoggingOutInterceptor());
- factory.setServiceClass(HelloWorld.class);
- factory.setAddress("http://localhost:8080/CXF_HelloWorld/services/HelloWorld");
- HelloWorld client = (HelloWorld) factory.create();
- String reply = client.sayHello("hello world!");
- System.out.println(reply);
- }
- }
第六步,部署,运行
把项目部署到tomcat上,启动tomcat,运行HelloWorldClient.java
控制台成功输出hello world!
版权声明:本文为博主原创文章,未经博主允许不得转载。