一、创建一个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("张三!"));
}
}
到此示例结束了。