前面我们已经成功的做了一个WebService,我们仔细想想其实如果再做连接数据库的和返回复杂类型的已经没有什么意义了!我们已经用假数据和配置文件绑定做过了,更多的时候,我们可能需要结合Spring来应用!OK,这就是我们这次研究的重点了!
真的没有想到,用xfire来做WebService和Spring的结合会这么的简单!
我们可以向以前一样引入Spring!之前的例子只需要一点点修改就可以了!
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml
classpath:org/codehaus/xfire/spring/xfire.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>xfire</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xfire</servlet-name>
<url-pattern>*.ws</url-pattern><!--
<url-pattern>/*</url-pattern> -->
</servlet-mapping>
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</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" />
<bean id="userDao" class="com.zhuweisky.xfireDemo.UserDaoImpl"/>
<bean id="userServiceTarget" class="com.zhuweisky.xfireDemo.UserServiceImpl">
<property name="userDao" ref="userDao"/>
</bean>
<!-- 使用XFire导出器 -->
<bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true">
<!-- 引用xfire.xml中定义的工厂 -->
<property name="serviceFactory" ref="xfire.serviceFactory" />
<!-- 引用xfire.xml中的xfire实例 -->
<property name="xfire" ref="xfire" />
</bean>
<!-- Declare a parent bean with all properties common to both services -->
<bean id="userService" parent="baseWebService">
<property name="serviceBean">
<ref bean="userServiceTarget"/>
</property>
<property name="serviceClass">
<value>com.zhuweisky.xfireDemo.UserService</value>
</property>
</bean>
</beans>
好了,只需要这一点点工作就OK了,现在我们可以用http://localhost:8080/你的工程名/services/UserService?wsdl 来访问了。
看到xml,就表示成功了!
把我们的测试类修改下使用:
public static void main(String[] args)
{
ApplicationContext ctx = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml");
try{
XFireExporter xfe = (XFireExporter) ctx.getBean("userService");
// System.out.println(o.toString());
UserService srvc = (UserService) xfe.getServiceBean();
System.out.println(srvc.getUser("tom").getAge());
List users=srvc.getUsers();
for (Iterator iter = users.iterator(); iter.hasNext();) {
User user = (User) iter.next();
System.out.println(user.getName());
}
}catch (Exception e){
e.printStackTrace();
}
}
这样就全部搞定!
分享到:
相关推荐
webservice学习笔记doc文档,喜欢或想要了解webservice的朋友可以下载学习一下。
JAVA的WebService支持V3.0.pdf JAVA6开发WebService WebService CXF学习:整合Spring框架
Eclipse下WebService学习.doc
springboot2.0webService学习
WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)
webService学习笔记
axis+webservice学习教程 网络转载,他人贡献。 在此表示感谢
webservice初学者适用
尚硅谷Webservice学习笔记,详情请参看文档,仅供个人学习
webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例
WebService学习笔记 比较经典
webservice学习资料XMLWSDL教程,webservice学习资料XMLWSDL教程
WebService学习过程中,知识点的总结,和例子。
WebService学习和了解 WebService的优点 SOAP是什么?WSDL是什么?
webservice4 二进制文件读取 webservice4 二进制文件读取
WebService其实就是向外部(跨语言甚至平台)公开一些函数方法等等内容,使外部能访问到所要发布的“服务”
webservice学习之二(实体类的传递)收藏[收集].pdf
你想要了解webservice么,那么就下载它吧,通过学习它,你就可以了解webservice的整个过程,但是需要vs2010的支持。是系统分析师考试的一个考试要点。
Webservice学习笔记