标签:webservice cxf helloworld jetty wsdl
上篇博客:webService总结(一)——使用CXF发布webService(不使用Spring) 介绍了不使用Spring自动发布webService,这篇博客介绍第二种方法——使用CXF手动发布webService(不使用Spring)。
CXF自动发布webService,我们使用的是Tomcat服务器。而使用CXF手动发布webService我们不再使用Tomcat,取而代之的是内嵌的jetty服务器。其实,jetty跟Tomcat并没有本质的区别,只是表现的形式不同,使用方法不同。既然要使用jetty,那么CXF中跟jetty有关的jar就必须要引入。我们还以上篇博客的例子来介绍。
服务端:
目录结构:
这里所有关于jetty的jar包都在CXF的lib目录中。
IHelloWorldServer代码:
package com.test.server;
import javax.jws.WebService;
@WebService
public interface IHelloWorldServer {
public String sayHello(String username);
}
package com.test.server;
import javax.jws.WebService;
@WebService(endpointInterface="com.test.server.IHelloWorldServer",serviceName="HelloService")
public class HelloWorldServerImp implements IHelloWorldServer {
@Override
public String sayHello(String username) {
return username+" : HelloWorld";
}
}与上篇博客不同的是,这里的两个类上面多了@WebService注解。
Test代码:
package com.test.server;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class Test {
public static void main(String[] args) {
HelloWorldServerImp implementor = new HelloWorldServerImp();
JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean();
svrFactory.setServiceClass(IHelloWorldServer.class);
svrFactory.setAddress("http://localhost:9000/HelloService");
svrFactory.setServiceBean(implementor);
Server server = svrFactory.create();
server.start();
}
}这个类的功能就是发布WebService,run之后,输入网址:http://localhost:9000/HelloService?wsdl 查看发布好的wsdl。这样WebService发布成功。
注意:网址后面一定要加?wsdl,否则会报错。
客户端:
HelloWorldClient代码
package com.test.client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
public class HelloWorldClient {
public static void main(String[] args) {
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:9000/HelloService?wsdl");
Object[] objects;
try {
objects = client.invoke("sayHello", "haitao");
//输出调用结果
System.out.println(objects[0].toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
实例介绍完毕,下篇博客介绍CXF 与 Spring的集成。
webService总结(二)——使用CXF手动发布webService(不使用Spring)
标签:webservice cxf helloworld jetty wsdl
原文地址:http://blog.csdn.net/dreamcatchergo/article/details/38149429