apache-cxf-3.1.6(webService接口开发maven)

1 结构图



2 jar包

pom.xml

    <dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-core</artifactId>
<version>3.1.5</version>
</dependency>


  <dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.5</version>
</dependency>

<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>3.1.5</version>
</dependency>

   <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>


3 接口



@WebService
public interface HelloWorld {
public String say(String str);
public List<Role> getRoleByUser(User user);
}


4 接口 实现类





@WebService
public class HelloWorldImpl implements HelloWorld {


public String say(String str) {
String aa = "error";
if ("abc".equals(str)) {
aa="success";
}else{
aa="error";
}


return aa;
}



public List<Role> getRoleByUser(User user) {
List<Role> roleList=new ArrayList<Role>();
// 模拟  直接写死
if(user!=null){
if(user.getUserName().equals("admin") && user.getPassword().equals("123")){
roleList.add(new Role(1,"总监"));
roleList.add(new Role(2,"架构师"));
}else if(user.getUserName().equals("dt") && user.getPassword().equals("123")){
roleList.add(new Role(3,"程序员"));
}else {
roleList.add(new Role(4,"权限错误"));
}
return roleList;
}else{
return null;
}
}


}

5 启动服务器接口





/客户端方法一 自动生成客户端

QQ鎴浘20160215203622.jpg

QQ鎴浘20160215211824.jpg





/客户端方法二 非自动生成客户端

package com.dt.test;


import java.util.List;


import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;


import com.dt.setrvice.HelloWorld;
import com.dt.setrvice.HelloWorldService;
import com.dt.setrvice.Role;
import com.dt.setrvice.User;


public class Client {

public static void main(String[] args) {

/* 自动生成调用 */
HelloWorldService service=new HelloWorldService();
HelloWorld helloWorld=service.getHelloWorldPort();
System.out.println(helloWorld.say("abc"));

User user=new User();
user.setUserName("jack");
user.setPassword("123456");
List<Role> roleList=helloWorld.getRoleByUser(user);
for(Role role:roleList){
System.out.println(role.getId()+","+role.getRoleName());
}
//

/* 非自动生成调用 */
    JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
   org.apache.cxf.endpoint.Client client = dcf.createClient("http://192.168.1.102:8888/helloWorld?wsdl");
  
   try {
   
    User user2=new User();
user2.setUserName("admin");
user2.setPassword("123");
   
Object[] objects = client.invoke("say", "aee"); // client.invoke("方法名称", "要传递的参数");
Object[] objects2  = client.invoke("getRoleByUser", user2);
 
List<Role> aa= (List<Role>)objects2[0];
System.out.println(aa);
for(Role role:aa){
System.out.println(role.getId()+","+role.getRoleName());
}
 
 
     //输出调用结果
     //System.out.println(objects[0].toString());
     //System.out.println(objects2[0].toString());
   } catch (Exception e) {
     e.printStackTrace();
   } 
}


}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值