java程序调用xfire发布的webService服务(二)
package xfireTest; public interface XFireTestService { public String test(String cont); }
package xfireTest.xfireTestImp; import xfireTest.XFireTestService; public class XFireTestImp implements XFireTestService { @Override public String test(String cont) { cont = "webService收到消息:" + cont; return cont; } }
<service xmlns="http://xfire.codehaus.org/config/1.0"> <!-- webService服务的名称 --> <name>XFireTest</name> <namespace>http://xfireTest/XFireTestService</namespace> <!-- 自己所写的接口路径 --> <serviceClass> xfireTest.XFireTestService </serviceClass> <!-- 实现类路径 --> <implementationClass> xfireTest.xfireTestImp.XFireTestImp </implementationClass> </service>
package test; public interface XFireTestService { public String test(String cont); }
package test; import org.codehaus.xfire.XFireFactory; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.service.binding.ObjectServiceFactory; public class CallWebServiceTest1 { public static void main(String[] args) { Service srModel = new ObjectServiceFactory() .create(XFireTestService.class); XFireProxyFactory factory = new XFireProxyFactory(XFireFactory .newInstance().getXFire());// 创建工厂实例 String helloURL = "http://localhost:8082/xfireTest/services/XFireTest"; try { XFireTestService service = (XFireTestService) factory.create( srModel, helloURL); System.out.println(service.test("测试")); } catch (Exception e) { throw new RuntimeException(e); } } }
这里的调用是比较简单的,也没有什么问题,字符串的传递完全可以。
package xfireTest; import java.io.Serializable; public class UserModel implements Serializable { /** * */ private static final long serialVersionUID = -8344776127885486411L; public UserModel() { super(); } public UserModel(String userName, int age) { super(); this.userName = userName; this.age = age; } /** * 用户名 */ private String userName; /** * 用户年龄 */ private int age; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "UserModel [userName=" + userName + ", age=" + age + "]"; } }
package xfireTest; import javax.jws.WebParam; import javax.jws.WebService; @WebService(serviceName = "UserService", targetNamespace = "http://xfireTest/UserService") public interface UserService { public UserModel addUser(@WebParam(name = "user") UserModel user); }
package xfireTest.xfireTestImp; import xfireTest.UserModel; import xfireTest.UserService; public class UserServiceImp implements UserService { @Override public UserModel addUser(UserModel user) { // System.out.println(user); System.out.println(user.getUserName() + ":" + user.getAge()); return user; } }
<service xmlns="http://xfire.codehaus.org/config/1.0"> <!-- webService服务的名称 --> <name>UserService</name> <namespace>http://xfireTest/UserService</namespace> <!-- 自己所写的接口路径 --> <serviceClass> xfireTest.UserService </serviceClass> <!-- 实现类路径 --> <implementationClass> xfireTest.xfireTestImp.UserServiceImp </implementationClass> </service>
package test; import org.codehaus.xfire.XFireFactory; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.service.binding.ObjectServiceFactory; public class CallWebServiceTest2 { public static void main(String[] args) { Service srModel = new ObjectServiceFactory().create(UserService.class); XFireProxyFactory factory = new XFireProxyFactory(XFireFactory .newInstance().getXFire());// 创建工厂实例 String helloURL = "http://localhost:8082/xfireTest/services/UserService"; try { UserService service = (UserService) factory.create(srModel, helloURL); UserModel user = new UserModel(); user.setAge(22); user.setUserName("test"); System.out.println(service.addUser(user)); } catch (Exception e) { throw new RuntimeException(e); } } }
package test; import javax.jws.WebParam; import javax.jws.WebService; @WebService(serviceName = "UserService", targetNamespace = "http://xfireTest/UserService") public interface UserService { public UserModel addUser(@WebParam(name = "user") UserModel user); }
package test; import java.io.Serializable; public class UserModel implements Serializable { /** * */ private static final long serialVersionUID = 9024481738536854407L; public UserModel() { super(); } public UserModel(String userName, int age) { super(); this.userName = userName; this.age = age; } /** * 用户名 */ private String userName; /** * 用户年龄 */ private int age; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "UserModel [userName=" + userName + ", age=" + age + "]"; } }
java程序调用xfire发布的webService服务(二)的更多相关文章
- java程序调用xfire发布的webService服务
昨天用xfire搭好了一个简单的webService的服务,可以在浏览器访问,今天便想要尝试以下如何调用这个服务及相关的方法.在网上查找了一些资料后,实现过程如下. 1.创建一个maven web项目 ...
- Java调用IIS发布的WebService
之前的一篇博客说了一个实例,就是用VS2005在IIS上发布WebService.今天我们来实现在Eclipse上用Java来调用昨天发布的WebService. 首先咋在浏览器中输入http://1 ...
- 如何调用别人发布的WebService程序
这篇经验会告诉我们如何调用别人发布的WebService,并且需要注意的事项.现在就拿获取天气预报的接口举例,因为文中不允许有链接,所以在下文图中有WebService链接的地址. 工具/原料 V ...
- VS2013如何调用别人发布的WebService程序
这篇经验会告诉我们如何调用别人发布的WebService,并且需要注意的事项.现在就拿获取天气预报的接口举例,因为文中不允许有链接,所以在下文图中有WebService链接的地址. 工具/原料 VS2 ...
- WebService学习总结——调用第三方提供的webService服务
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据. 气象中心的管理系统将收 ...
- WebService学习总结(四)——调用第三方提供的webService服务
http://www.cnblogs.com/xdp-gacl/p/4260627.html 互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他 ...
- WebService学习--(四)调用第三方提供的webService服务
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为 ...
- 【WebService】调用第三方提供的webService服务(七)
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为 ...
- 自定义及发布一个webservice服务
自定义及发布一个webservice服务 - 声明 某个业务服务为webservice服务 通过@webservice 注解来声明 - 发布webservice服务 ...
随机推荐
- JDK配置测试
JDK配置测试 介绍两种JDK配置方式: 一:大多数人配置方法 1.下载JDKhttps://www.baidu.com2.配置环境变量单击"计算机-属性-高级系统设置",单击&q ...
- Android图像数据传递到C++的一些坑
最近在做一个Android图象识别的app, 通过相机预览或者是拍照功能获取图像数据,然后将图像数据传递到本地C++的图像识别so库.在这个过程中花的时间最多的就是数据传输问题.谨以此坑,警示未来! ...
- *C语言有关指针的变量声明中的几个易错点
转至:http://my.oschina.net/ypimgt/blog/108265 Technorati 标签: 指针, typedef, const, define 我们都知道,至少听说过 ...
- 关于Linux的常忘命令积累
1.在vim中显示行号 在/etc/vimrc里加上一行 set nu! 2./etc/sysconfig/network-scripts/ifcfg-eth0 (DNS1=192.168.1 ...
- 查询操作 -- Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- C#常见问题总结(二)
1.erp系统可以在具有固定ip的拥有多层服务器的局域网中使用吗?如何使用 解决方法: 把ini.配置文件字符串中的服务器名改成服务器的,把debug文件夹拷到其他机器上就行,服务器上的服务器名是默认 ...
- 05_Linux网络配置及CRT远程
占位占位占位占位占位占位占位占位
- BZOJ 4276: [ONTAK2015]Bajtman i Okrągły Robin [线段树优化建边]
4276: [ONTAK2015]Bajtman i Okrągły Robin 题意:\(n \le 5000\)个区间\(l,r\le 5000\),每个区间可以选一个点得到val[i]的价值,每 ...
- AGC017 F - Zigzag
传送门 Time limit : 4sec / Memory limit : 256MB Score : 1600 points Problem Statement There are N(N+1)⁄ ...
- qt的信号与槽函数
关联: bool connect ( const?QObject?*?sender, const?char?*?signal, const QObject * receiver, const char ...