1. Client开发者拥有Web服务端的class
即:能拿到服务端的接口Class和Entity类及aegis 配置文件
//传统POJO模式
Service srvcModel = new ObjectServiceFactory().create(Hello.class);
XFireProxyFactory factory = new XFireProxyFactory(
XFireFactory.newInstance().getXFire());
String helloWorldURL = " http://localhost:8080/webservice/services/Hello ";
Hello srvc = ( Hello) factory.create(srvcModel,
helloWorldURL);
System.out.println(srvc.sayHello("Robin"));
// JSR181模式,注意这里Server端开发组需要向Client提供实现类,而不止于//接口,有点危险
Service srvcModel = new AnnotationServiceFactory()
.create(HelloImpl.class);
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
.newInstance().getXFire());
String helloWorldURL = "http://localhost:8080/webservice/services/Hello";
Hello hello = (Hello) factory.create(srvcModel,helloWorldURL);
System.out.println(hello.sayHello("caohuili:"));
2 动态模式
动态模式不需要服务端的class,不过性能和复杂对象映射等估计做得不会太好。
Client client = new Client(new URL(
"http://localhost:8080/webservice/services/Hello?wsdl"));
Object[] results = client
.invoke("sayHello", new Object[] { "Cao," });
System.out.println((String) results[0]);
3 根据WSDL生成Client Stub
//简单参数的
HelloClient client=new HelloClient();
HelloPortType port =client.getHelloHttpPort();
System.out.println(port.sayHello("hi!"));
//参数复杂的
MemberServiceClient client = new MemberServiceClient();
MemberService memberService = client.getMemberServiceHttpPort();
User user = new User();
/*JAXBElement<String> name = new JAXBElement<String>(new QName(
"http://memberService", "username"), String.class, "smallnest");
JAXBElement<String> password = new JAXBElement<String>(new QName(
"http://memberService", "password"), String.class, "123456");*/
ObjectFactory objFac=new ObjectFactory();
JAXBElement<String> name = objFac.createUserUsername("smallnest");
JAXBElement<String> password = objFac.createUserPassword("123456");
user.setUsername(name);
user.setPassword(password);
Member oneMember = new Member();
JAXBElement<String> memeberName = new JAXBElement<String>(new QName(
"http://memberService", "name"), String.class, "迈克");
JAXBElement<String> email = new JAXBElement<String>(new QName(
"http://memberService", "email"), String.class,
"micro@micro.com");
oneMember.setName(memeberName);
oneMember.setEmail(email);
oneMember.setRank(6);
// 调用方法
memberService.addMember(oneMember, user);
分享到:
相关推荐
XFireClient客户端,自己写的小DEMO
使用XFIRE技术 并将server 与client 进行连结 先传client 程式
xfire+spring+webservice+client xfire+spring+webservice+client xfire+spring+webservice+client
使用xfire开发webservice的客户端需要的完整jar包。
xfire_client支持client用到各种jar包,更方便简洁的搭建client
xfire客户端jar包以及一个Demo样板 Demo样板不能直接使用,因为和每个人调用的wsdl直接相关。 请修改后使用!
这个小实例有server和client的代码,server直接用myeclipse导入,然后添加spring2.0 aop和core,xfire1.2即可.client也是直接导入项目,然后导入jax-ws2.1api和jax-ws2.1 runtime libraries即可.这些包通过点击项目...
xfire 实现https 调用webservice 接口 jar包齐全可直接导入eclipse进行二次开发
xfire接口项目(Server+Client),完整工程,可运行。
1、以下四个类调用了XmlSchema-1.1.jar包 因与cxf包xmlschema-core-*.jar... xfire-all-1.2.6-incomplete.jar 替换 xfire-all-1.2.6.jar 3、XmlSchema-1.1.jar 可以与 xmlschema-core-*.jar 共存避开同路径同名类冲突
此程序demo详细描述的从发布接口到调用接口的全部过程,详细描述了Xfire调用webservice参数无法传递的问题。
spring和xfire集成的时候修要的jar文件,spring需要的jar文件自己另行下载。
xfire客户端生成自动生成java代码调用
spring xfire spring 集成xfire 比较好的一种方式
web服务 客户端需要的一些xfire的jar文件
webservice服务,使用Xfire框架调用服务的常见客户端代码
XFire--Webservice入门xfire
webservice Soap和XFire2种方式代码列子
xfire 1.26 博文链接:https://qgl.iteye.com/blog/119726
xfire-all-1.2.6 xfire所需的全部包