User类:
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public interface UserService {
public User getUser();
}
实现类:
public class UserServiceImpl implements UserService {
public User getUser(){
User u = new User();
u.setName("test");
return u;
}
}
web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
applicationContext.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<!-- base service -->
<bean id="webService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false"
abstract="true">
<property name="serviceFactory" ref="xfire.serviceFactory" />
<property name="xfire" ref="xfire" />
<property name="scope" value="application"/>
<property name="use" value="literal"/>
<property name="style" value="wrapped"/>
</bean>
<bean id="userService" parent="webService">
<property name="serviceBean" ref="userServiceImpl" />
<property name="serviceClass" value="UserService" />
<property name="name" value="UserService"/>
</bean>
<bean id="userServiceImpl" class="UserServiceImpl"/>
</beans>
客户端调用代码:
public static void main(String[] args) {
Service srvcModel = new ObjectServiceFactory()
.create(UserService.class);
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
.newInstance().getXFire());
String url= "http://localhost:8080/ws/services/UserService";
try {
UserService srvc = (UserService) factory.create(
srvcModel, url);
User u= srvc.getUser();
System.out.println(u.getName());
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
打印出来的结果为:null
理论上来说USER类里面,只有String这样的基本类型,不要什么映射就可以了,但是还得不到值,百思不得其解,期待那个高*手指点指点....多谢!!!
分享到:
相关推荐
本教程将深入探讨如何使用XFire来返回自定义的实体类实例。 首先,了解XFire的基本概念。XFire是Apache CXF项目的一部分,它支持基于SOAP和RESTful的Web服务。XFire通过使用Java注解或XML配置文件,使得开发者可以...
在这个“xfire 使用外部类、返回collection及输入数组参数示例”中,我们将深入探讨如何利用Xfire来处理复杂的参数类型,包括外部类引用、集合(Collection)返回以及数组作为输入参数。 ### 1. 外部类的使用 在...
在服务端,如果需要传递复杂的对象,比如自定义的JavaBean,我们需要在`Idemo`和`DemoImpl`相同的包内创建一个名为`Idemo.aegis.xml`的文件。这个XML文件用于映射方法参数和返回类型,例如,定义一个接受`Person`...
在本文中,我们将深入探讨Xfire调用Web服务时遇到的参数传递问题以及解决策略。 首先,让我们了解Web服务的基本概念。Web服务基于SOAP(Simple Object Access Protocol)协议,通过HTTP协议进行通信,使得不同的...
但如果方法的返回类型是List或Map,并且包含自定义对象,我们需要额外的配置文件来描述这些复杂类型。例如,如果接口方法`getUsers`返回一个`List<User>`,我们需要一个名为`HelloWorld.aegis.xml`的文件: ```xml ...
这篇博客“XFire发布WebService方法如果返回的是LIST的处理”探讨了在使用XFire时,如何正确处理Web服务方法返回一个List对象的情况。 首先,我们要理解Web服务的基本工作原理。Web服务通常基于SOAP(Simple Object...
这意味着你可以直接在方法参数或返回值中使用自定义的Java对象,XFire会自动处理对象到XML的转换,大大提高了开发效率。 以下是一般的步骤来实现XFire客户端调用: 1. 获取WSDL:通过URL获取Web服务的WSDL文件。 2...
xfire是一个早期流行的开源Web服务框架,主要用于构建SOAP(简单对象访问协议)和RESTful(Representational State Transfer)服务。这个框架使得Java开发者能够轻松地创建、部署和消费Web服务。xfire依赖于一系列的...
1. **XML序列化与反序列化问题**:Xfire需要将Java对象转换为XML格式(序列化)发送给服务端,服务端再将接收到的XML还原为Java对象(反序列化)。如果双方使用的数据类型不匹配或XML格式不正确,可能会导致参数丢失...
这对于游戏开发爱好者或者想要自定义游戏客户端的人来说具有极高的学习价值。通过阅读和分析xfire的源码,开发者能够掌握如何构建类似的游戏社交平台,包括如何实现高效的P2P通信、如何处理大规模并发用户、以及如何...
为了更好地理解和使用Xfire API,开发者可以参考提供的帮助文档,文档中通常会包含API接口的详细说明、示例代码以及常见问题解答。对于初学者,理解每个API方法的功能和参数、以及如何正确构造HTTP请求是非常重要的...
通过查看源代码,开发者可以深入理解XFire的工作机制,进行定制化开发,解决特定场景下的问题,或优化性能。源代码的开放性也是开源项目的一大优势,促进了技术的交流与进步。 再者,`xfire-distribution-1.2.6.zip...
2. 消息处理和序列化:xfire-aegis.jar和xfire-xmlbeans.jar等,提供了不同的XML序列化策略,Aegis支持基本类型和自定义类型的转换,而XmlBeans则依赖于XML Schema进行对象绑定。 3. SOAP支持:xfire-soap.jar,...
XFire是早期流行的Web服务实现,它允许开发者轻松地将Java对象转换为Web服务,反之亦然。 【描述】"webService-xfire入门" 提示我们这是一个初学者指南,旨在帮助用户理解如何开始使用XFire来创建和使用Web服务。这...
"Java 使用 XFire 调用 webService 接口" 在本文中,我们将学习如何使用 XFire 框架在 Java 中调用 webService 接口。XFIRE 是一个基于 Java 的开源框架,用于简化 Web 服务的开发和集成。下面,我们将通过一个简单...
当需要在Web服务中传递自定义对象,如`Order`时,需要注意对象的创建方式。XFire使用JAXB(Java Architecture for XML Binding)进行对象序列化和反序列化。因此,自定义对象的创建必须通过对象工厂类完成: 1. ...
同时,xfire还支持JAXB(Java Architecture for XML Binding)进行XML和Java对象之间的自动转换,极大地提高了开发效率。 【压缩包子文件的文件名称列表】:xfire126Demo 在这个示例中,我们将创建一个简单的Web...
返回结果时,它再将服务端的响应解析为可读的业务对象。 2. **配置文件**:客户端代码可能包含XML配置文件,用于存储Web服务的URL、认证信息、端口等参数,便于配置和管理。 3. **HTTP/HTTPS通信模块**:由于Web...
4. **服务消费**:在客户端,我们可以使用XFire的ClientProxyFactoryBean来创建一个代理对象,通过这个代理对象调用远程Web服务。 四、源码分析 在提供的“xFire实现webservices”项目中,你可以找到以下关键部分:...
6. **异常处理**:XFire支持自定义的异常处理机制,可以通过配置或编程方式设置错误处理器,以捕获并处理通信过程中的异常。 7. **安全与认证**:为了确保服务的安全性,XFire提供了多种安全模型,如基于证书的身份...