Grails+Xfire 搭建Web Service环境
Grails???
Type this command in your Grail application directory
//在你的应用程序目录下执行
$> grails install-plugin xfire
or if you have a plugin archive locally.
//如果插件已经下载到了本地,就用这个方法
$> grails install-plugin /path/to/grails-xfire-0.7.3.zip
?
?
?
OK只要正确执行完上面的方法,那么在你的Grails Applications目录下面就会多出一个Plugins如图:
?
?
然后到
static mappings = {
??????????????????????????????????????????????????????????????????????}
//红色字体为新添加的部分
?
???
%GRAILS_HOME%$>?
???这里我先做个测试:
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
?
@WebService(name="Test",serviceName="Test",
?class TestService {
?
static expose=['xfire']
?
String otherMethod2(@WebParam String name)
{
???}
?
?
@WebMethod
@WebResult
int add(@WebParam int intOne,@WebParam int intTwo)
{
???}
?
?
}
?
这里定义了2个方法otherMethod2简单的加法?
好了!当你写完这个方法的时候,那么这个服务也就写完了.接着就是直接启动服务来验证了.在CMD中输入
%GRAILS_HOME%$>等待或许编译时的等待正式为了换取运行时的效率吧.
?
?
OK!打开浏览器查看Test服务的wsdl吧,如过你能看到,就证明你已经成功一半了.用IE看吧,我试过用K-Meleon查看居然什么都看不到~汗.
http://localhost:8080/%Grails_Application%/services/Test?wsdl
如图:
?
?
?
?
恩,这样环境就搭建好了,是不是很简单?如果你还觉得繁琐,你可以去查查一半xfire+java web程序的搭建方案.保管光xml配置你就看的不爽了.
?
?
环境达好了,那服务怎么访问呢? MS我想到了Apache,翻倒一番终于看到了Axis这个webService我们可以先到Axis/lib目录下面,用CMD执行
java -classpath ".;commons-logging-1.0.4.jar;axis.jar;commons-discovery-0.2.jar;jaxrpc.jar;wsdl4j-1.5.1.jar; " org.apache.axis.wsdl.WSDL2Java -o "abcdefg"?
这些都是在一行里面 千万不要分行要不会报错的
-o后面跟上服务地址的?
这个在Axis/lib目录下就会多出abcdefg然后写一个简单的测试类:
???????????????????????????????
??????????????????????????????????
??????????????????????????
OK就会看到结果了.当然把这些类直接放到Grails中的?%Grails_Application%\src\java目录下,那么在Groovy脚本中也就能这么调用了.