第一次接触xFire,webService,SOAP等东西,先敲一个HelloWorld试试。详细的介绍在下面的网址:
http://www.ibm.com/developerworks/cn/java/j-lo-xfire/
遇到了一些小问题,原文中并没有说明。
首先是配置文件存放问题。eclipse新建的web工程会自动生成META-INF文件夹,直接把xfire\services.xml放到这个文件夹下会报FileNotFoundException。正确的做法应该是建立好xfire文件夹以及services.xml后,把META-INF整个放到WEB-INF文件夹下。
之后会出现Unrecognized xbean namespace mapping错误,经过google,错误的原因在services.xml中的第一行,<beans xmlns="http://xfire.codehaus.org/config/1.0">应该全部小写。
之后是Invalid SOAP request.错误。仔细看原文发现url是http://localhost:8080/xFire/services/HelloWorldService?wsdl,最后的参数必须为wsdl。原文中给出:
“
,”wsdl”参数表示查看该 Web 服务的 WSDL(Web服务描述语言)文件。
”
具体的意思还不太明白,应该是WebServices的概念吧,回头学习
下一个错误是java.lang.ClassNotFoundException: org.apache.xml.serializer.TreeWalker,google的结果是少加入了一个Serializer.jar。在apache官网上搜索未果,后来发现是在xalan的jar包中包含了此jar包,网址为http://www.apache.org/dist/xerces/j/。
重启tomcat,在浏览器中输入http://localhost:8080/xFire/services/HelloWorldService?wsdl,终于出现了结果。
=====================================================================
补充一点,在eclipse内嵌的浏览器中输入网址不显示任何内容,打开一个ie窗口后会显示正常的xml,不明白原因……