xfire 1.0 终于final了
来源:互联网 发布:java switch是什么意思 编辑:程序博客网 时间:2024/05/21 07:14
受白衣同志的当,上了xfire的贼船,抛弃了axis,呜!
xfire 1.0终于final了,试用了一下,,感觉同1.0M6相比,使用变化不大。
看看user guide,照着examples下的例子,基本上hello xfire不成问题。
1、jar包
同以往一样,xfire user guide中的Dependency Guide.html还是说得不明不白,除了让人发晕,没有太大的实际意义。
注:
1)XmlSchema-1.0.jar、jakatra commons httpclient/codec只有在Dynamic Client中才需要用。
2)采用quick start、examples/book中用的service.xml配置方法时,xbean-spring与spring有兼容问题,我用1.2.7、2.0M2的spring时,总是报addPropertyValue(String,Object)之类的异常,换成1.2.6以后一切正常。用examples/spring例子中的配置方法时,没有出现这种情况。
2、quick start、examples/book
这种做法很简单,好象也不太合我的胃口,就没仔细折腾。
(1)在web.xml中配置一下
2 <servlet-name>XFireServlet</servlet-name>
3 <display-name>XFire Servlet</display-name>
4 <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
5 </servlet>
6
7 <servlet-mapping>
8 <servlet-name>XFireServlet</servlet-name>
9 <url-pattern>/servlet/XFireServlet/*</url-pattern>
10 </servlet-mapping>
11
12 <servlet-mapping>
13 <servlet-name>XFireServlet</servlet-name>
14 <url-pattern>/services/*</url-pattern>
15 </servlet-mapping>
(2)编码。这个不用说,呵呵
(3)在classpath中,建META-INF/xfire/services.xml配置文件,把刚才做好的webservices配置一下。
2 <service>
3 <name>BookService</name>
4 <namespace>http://xfire.codehaus.org/BookService</namespace>
5 <serviceClass>org.codehaus.xfire.demo.BookService</serviceClass>
6 </service>
7</beans>
(4)然后就是deploy,访问http://ip:port/webapp name/BookService?WSDL之类的动作了。
3、examples/spring
xfire和spring勾搭得比较紧密啊,只需要简单配置一下,就可以把spring.xml中配置好的bean拿出来做web services了。
(1)折腾spring的东西(略)。
(2)在web.xml中配置一下(注意xfire那一段)
2 <param-name>contextConfigLocation</param-name>
3 <param-value>/WEB-INF/applicationContext.xml classpath:org/codehaus/xfire/spring/xfire.xml</param-value>
4 </context-param>
5
6 <listener>
7 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
8 </listener>
9
10 <servlet>
11 <servlet-name>xfire</servlet-name>
12 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
13 </servlet>
14 <servlet-mapping>
15 <servlet-name>xfire</servlet-name>
16 <url-pattern>/*</url-pattern>
17 </servlet-mapping>
(3)在WEB-INF/xfire-servlet.xml中把spring bean同xfire webservices“关联”起来。这个xfire-servlet.xml实际上就是一个标准的spring.xml配置文件。
2<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
3<beans>
4 <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
5 <property name="urlMap">
6 <map>
7 <entry key="/EchoService" value-ref="echo"/>
8 </map>
9 </property>
10 </bean>
11
12 <bean id="echo" class="org.codehaus.xfire.spring.remoting.XFireExporter">
13 <property name="serviceFactory" ref="xfire.serviceFactory"/>
14 <property name="xfire" ref="xfire"/>
15 <property name="serviceBean" ref="echoBean"/>
16 <property name="serviceClass" value="org.codehaus.xfire.spring.example.Echo"/>>
17 </bean>
18</beans>
注:第16行,xfire 1.0M6中用serviceInterface,现在改成serviceClass了。
(4)然后就完工,用http://ip:port/webapp name/xfire/EchoService?WSDL可以看到WSDL内容。
4、客户端
按我的恶习,这类事情,肯定是直接开vs.net或者C# developer来显摆一下了。不得不承认,.net里面调web services就是方便啊!
至于java做client么,以前一般是用axis来生成client class,xfire也提供类似的工具,不过对于xfire来说,最简单的办法就是用Dynamic Client,几行代码搞定。
2 Echo service = (Echo) new XFireProxyFactory().create(serviceModel,
3 "http://localhost:8080/xfire-examples/EchoService");
4 String result = service.echo("ok");
- xfire 1.0 终于final了
- Fire Workflow 1.0正式版终于发布了
- 终于决定了!
- 宽带终于修好了!
- 终于开张了
- eclipse3终于出来了。。。
- 终于开通了blog
- 终于用上blog了
- php5终于出来了
- 终于回到了西安!
- doom3终于出来了
- 终于要回家了
- 终于辞了
- 终于又工作了~~
- 终于又回来了
- 终于学会了jar
- 终于买了数码相机
- 终于告一段落了
- 关闭窗体执行托盘操作
- $`
- 再谈内部类
- Shell编程摘录(2)
- 搜索引擎技术资源篇-1(转载)
- xfire 1.0 终于final了
- C++ 中的 Exception (> 中文翻译)
- 轻量级开发的成功秘诀,第 4 部分: 轻量级容器的比较
- JavaScript教程:第 2 章
- Aodv路由协议——将aodv-uu-0.9.3移植到ARM-LINUX中
- 财富密码:变身百万富翁的二十五法
- nokia code 诺基亚秘密按键
- LINUX shell快速参考
- 搜索引擎技术资源篇-2(转载)