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服务 ...
随机推荐
- left join on/right join on/inner join on/full join on连接
现在有两张表,第一张表是用户表,第二张表是订单表.情况是这样的,在我这张用户表里用户很多,但是真正下单的人却不多,而且,每一个用户可以有多个订单.然后领导喊话了,小王,你给我查下,现在咱们的订单有多少 ...
- Effective Java 之-----关于延迟初始化
1.大多数情况下,正常的初始化要优先于延迟初始化. private final FieldType field = computeFieldValue(); 2.如果利用延迟优化来破坏初始化的循环,就 ...
- 导入一个新项目需要注意的几大问题(jdk1.6+eclipse4.4+tomcat6)
今天导项目犯了一个很低级的错误,浪费了半个小时,所以在此罗列出在导一个新的项目到eclipse中时需要注意的几个问题,希望对大家有所帮助. 将项目从svn或者github等项目版本控制软件上拷贝下来, ...
- git的学习笔记
1. Git介绍 Git是一个开源的分布式版本控制软件,用以有效.高速的处理从很小到非常大的项目版本管理. Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发. Git ...
- python的组合数据类型及其内置方法说明
python中,数据结构是通过某种方式(例如对元素进行编号),组织在一起数据结构的集合. python常用的组合数据类型有:序列类型,集合类型和映射类型 在序列类型中,又可以分为列表和元组,字符串也属 ...
- 安装redis 2.6.4
下载redis-2.6.4下载链接:http://pan.baidu.com/s/1eQ9Z8NS make MALLOC=jemalloc/server/redis2/src/redis-serve ...
- 介绍一种非常好用汇总数据的方式GROUPING SETS
介绍 对于任何人而言,用T-SQL语句来写聚会查询都是工作中重要的一环.我们大家也都很熟悉GROUP BY子句来实现聚合表达式,但是如果打算在一个结果集中包含多种不同的汇总结果,可能会比较麻烦.我将举 ...
- [一个脑洞] Candy?'s 不饱和度
update 2017.7.10 Candy?'s 不饱和度 题目背景 化学老师让同学们出题!昌老师担任有机组组长! Candy?出了一道数不饱和度的题目,昌老师不会做所以拒绝接受!!! 于是Cand ...
- Android逆向之so的半自动化逆向
因为工作需要,转型干android逆向,有几个月了.不过对于so的逆向,任然停留在,难难难的阶段,虽然上次自己还是逆向了一个15k左右的小so文件,但是,那个基本是靠,一步一步跟代码,查看堆栈信息来自 ...
- 代码从stepping stone搬移到内存
为什么要搬移代码?如何搬移代码?arm启动流程回顾:2440:这里我们分析的是从nand flash 启动.2440的启动主要依赖于一个部件(SRAM),又名stepping stone.它的地址为0 ...