webservice 之CXF 入门示例 (不基于Spring)

一、创建一个java或web工程

需要加载的 jar

   asm-2.2.3.jar

   commons-logging-1.1.1.jar

   cxf-2.2.10.jar

   geronimo-servlet_2.5_spec-1.2.jar
    jetty-6.1.21.jar
    jetty-util-6.1.21.jar

    neethi-2.0.4.jar
    wsdl4j-1.6.2.jar
    XmlSchema-1.4.5.jar

二、创建webservice接口
package com.ws;

 

import javax.jws.WebService;

import com.po.User;

 

@WebService
public interface Hello {
       tring sayHello(String str);
}

 

三、ws实现类

package com.ws.impl;


import javax.jws.WebService;

import com.service.impl.UserServiceImpl;
import com.ws.Hello;

 

@WebService(endpointInterface="com.ws.Hello",serviceName="helloWorld")
public class HelloImpl implements Hello {

 public String sayHello(String str) {
  System.out.println("调用实现类里的sayHello()");
  return "hello:"+str;
 }

}

四、发布webservice

package com.lee;

import javax.xml.ws.Endpoint;

import com.ws.Hello;
import com.ws.impl.HelloImpl;

public class ServiceMain {

 /**
  * 方法一:使用cxf自带的jetty服务器发布,需要加载jetty相关包

  */
 public static void main(String[] args) {
  Hello  he1 = new HelloImpl();
  Endpoint.publish("http://127.0.0.1:7001/CxfService", he1);
  System.out.println("webservice 暴露成功!");
  
  /*方法二:
  HelloImpl hello = new  HelloImpl();
  ServerFactoryBean svrFactory = new ServerFactoryBean();
  svrFactory.setServiceClass(Hello.class);
        svrFactory.setAddress("http://127.0.0.1:7001/CxfService");
        svrFactory.setServiceBean(hello);
         svrFactory.create();
   */
  
 }

}

 

五:通过访问http://127.0.0.1:7001/CxfService?wsdl 可以看到wsdl文件

 

六、客户端调用

现将生成的服务器端的wsdl转换到客户端的代码中

新建一java项目--》命令窗口下转到项目路径src下

再通过wsdl2java 将wsdl转成java代码

比如我本地项目需要如下操作

cmd

f:

cd testCode\cxfClient\src

wsdl2java  http://127.0.0.1:7001/CxfService?wsdl

 

然后写测试类:

package com.lee;

import com.ws.Hello;
import com.ws.impl.HelloWorld;

public class ClientMain {

 
 public static void main(String[] args) {
  HelloWorld factory = new HelloWorld();
  Hello he = factory.getHelloImplPort();
  System.out.println(he.sayHello("张三!"));
 }

}

 

到此示例结束了。

你可能感兴趣的:(webservice,cxf java ws)