Webserviceのクライアント呼び出し--メモ
14781 ワード
1つ目は動的呼び出しであり、2つ目はサービス側のコードを生成してから呼び出し、コードを生成するとき、パケット名はサービス側と同じようにコマンドを生成することが望ましい.
D:\project> wsimport -s . http://localhost:8080/dmpWebService/userService?wsdl
package com.example.webservice.controller;
import com.example.webservice.service.User;
import com.example.webservice.service.UserService;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import java.util.Arrays;
import java.util.List;
public class ClientContr {
public static void main(String[] args) {
// dynamic();
// ser();
// dynamicaddUser();
seraddUser();
}
public static void dynamic() {
JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
Client client = factory.createClient("http://localhost:8080/dmpWebService/userService?wsdl");
try {
Object[] objects = client.invoke("findUserById", "1");
List<Object> list = Arrays.asList(objects);
User o = (User)list.get(0);
// ObjectMapper mapper = new ObjectMapper();
// String string = mapper.writeValueAsString(o);
System.out.println(o.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void dynamicaddUser() {
JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
Client client = factory.createClient("http://localhost:8080/dmpWebService/userService?wsdl");
try {
Object[] objects = client.invoke("addUser", "{'name':'alibo','age':'18'}");
System.out.println(objects[0]);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void ser() {
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
factoryBean.setAddress("http://localhost:8080/dmpWebService/userService?wsdl");
factoryBean.setServiceClass(UserService.class);
UserService userService= (UserService)factoryBean.create();
User user = userService.findUserById("i");
System.out.println(user.getName());
}
public static void seraddUser() {
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
factoryBean.setAddress("http://localhost:8080/dmpWebService/userService?wsdl");
factoryBean.setServiceClass(UserService.class);
UserService userService= (UserService)factoryBean.create();
User u = new User();
u.setAge(12);
u.setName("wrx");
Object o = userService.addUser(u);
System.out.println(o);
}
}