转载来自:http://yjm199.blog.51cto.com/4408395/1347472
1.
import java.net.MalformedURLException;
import java.net.URL;
import org.codehaus.xfire.client.Client;
//引用的xfire.client.Client包
publicclass ServiceTest {
publicstaticvoid main(String[] args) throws MalformedURLException, Exception {
// 根据 wsdl创建客户端
Client client =new Client(new URL(http://localhost:8080/项目名/services/service名?wsdl));
// 客户端 反射 ws 方法与传递参数
Object[] results = client .invoke("sayHello", new Object[] { "Firends" });
System.out.println(results[0]);
}
}
//这种方式的传递对于复杂对象是不成功的。可交互简单类型的数据。
2.
import java.net.MalformedURLException;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import com.yjm.ManagerService;
// 注意看引入的包,有些包是xfire提供的包。
public class ServiceTest {
public static void main(String[] args) {
Service ser = new ObjectServiceFactory() .create(ManagerService.class);
XFireProxyFactory xFactory = new XFireProxyFactory(XFireFactory .newInstance().getXFire());
String url = http://localhost:8080/项目名/services/service名;
try {
// ms与服务器端交互复杂对象类型
ManagerService ms= (ManagerService) factory.create( ser , url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
问题来了,不同java webservice框架之间是否可以传递复杂对象类型。本人目前在做一个xfire与axis之间传
递复杂对象的问题