服务接口及实现类很简单:
接口?com.service.StudentService:
03 |
import javax.jws.WebParam;
|
05 |
import javax.jws.WebService;
|
09 |
public interface StudentService {
|
11 |
???? String helloStudent( @WebParam (name= "text" )String name);
|
实现类?com.service.impl.StudentServiceImpl:
01 |
package com.service.impl;
|
03 |
import javax.jws.WebService;
|
05 |
import com.service.StudentService;
|
07 |
@WebService (endpointInterface= "com.service.StudentService" ,targetNamespace= "http://service.com/" )
|
09 |
public class StudentServiceImpl implements StudentService{
|
11 |
???? public String helloStudent(String name) {
|
13 |
???????? return "hello " + name;
|
server类:?com.jettyServer.ServerForJetty:
01 |
package com.jettyServer;
|
03 |
import javax.xml.ws.Endpoint;
|
05 |
import com.service.impl.StudentServiceImpl;
|
07 |
public class ServerForJetty {
|
09 |
???? public static void main(String[] args) throws InterruptedException {
|
11 |
???????? StudentServiceImpl implementor = new StudentServiceImpl();
|
13 |
???????? String address = "http://localhost:9000/student" ;
|
15 |
???????? Endpoint.publish(address,implementor);
|
client类:com.client.Test?
03 |
import org.apache.cxf.endpoint.Client;
|
05 |
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
|
09 |
???? public static void main(String[] args) throws Exception {
|
11 |
???????? JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
|
1 |
???????? Client client = dcf.createClient( "http://localhost:9000/student?wsdl" );
|
3 |
???????? Object[] res = client.invoke( "helloStudent" , "LeeThinker" );
|
5 |
???????? System.out.println( "Echo response: " + res[ 0 ]);
|
先启动JettyServer,?后访问http://localhost:9000/student?wsdl,?成功刷新出wsdl,?Ok,?服务顺利启动!
再执行Test的main方法,?Congratulations!?这次真正使用Dynamic的方式,?在不需要通过wsdl2java生成客户端java类文件的情况下,?成功调用WebService服务!