Grails 加上Xfire plugin 搭建web Service 环境.总体上来说还是比较方便的.没有直接使用j2ee+xfire那么多的繁琐xml配置.Grails再一次体现了敏捷开发的便捷性.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
首先要给自己的Grails Application 应用工程装上Xfire 的插件.可以选择先下载zip包再安装也可以直接由网络安装.
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-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">0.7.3</chsdate>.zip
|
OK只要正确执行完上面的方法,那么在你的Grails Applications目录下面就会多出一个Plugins 目录.
如图:

然后到 %GRAILS_APPLICATION%/conf目录下面去修改一下UrlMappings.groovy文件,记得一定要改.
static mappings = {
"/$controller/$action?/$id?"{
constraints {
controller(matches:/.*[^(services)].*/)
}
}
}
//红色字体为新添加的部分
|
接下来就是直接写属于你自己需要的业务服务类了,这里我假设我的服务类名为Test,在CMD模式下输入:
%GRAILS_HOME%$> grails create-service Test
|
那么在%GRAILS_APPLICATION%/grails-app\services 目录下就会生成一个TestService.groovy 文件,这就是我们要的服务文件. 我们要做的就是修改这个文件变成我们的业务逻辑服务即可.加上Groovy语法特有的闭类性质.和Spring的注入(POGO)特性,这个服务类将会显得很强大…嘿嘿
这里我先做个测试: 文件内容如下
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
@WebService(name="Test",serviceName="Test",
targetNamespace="http://www.oksonic.cn/xfire")
class TestService {
static expose=['xfire']
String otherMethod2(@WebParam String name)
{
return "Hello! ${name}";
}
@WebMethod
@WebResult
int add(@WebParam int intOne,@WebParam int intTwo)
{
return intOne+intTwo;
}
}
|
这里定义了2个方法otherMethod2 根据用户传入的姓名对用户说hello,以及一个
简单的加法 add
好了!当你写完这个方法的时候,那么这个服务也就写完了.接着就是直接启动服务来验证了.在CMD中输入
%GRAILS_HOME%$> grails run-app
|
等待 1 分钟…没办法,这是我目前觉得Grails 与 Ruby 相比唯一不足的地方,就是启动太慢,但是想想,Grails在启动的时候把文件直接编译成java class ,而Ruby却没有.
或许编译时的等待正式为了换取运行时的效率吧.
OK!打开浏览器查看Test服务的wsdl吧,如过你能看到,就证明你已经成功一半了.用IE看吧,我试过用K-Meleon查看居然什么都看不到~汗.
http://localhost:8080/%Grails_Application%/services/Test?wsdl
|
如图:

恩,这样环境就搭建好了,是不是很简单?如果你还觉得繁琐,你可以去查查一半xfire+java web程序的搭建方案.保管光xml配置你就看的不爽了.
环境达好了,那服务怎么访问呢? MS 为他们的程序员准备的VS可以很方便的根据wsdl自动生成访问类.那java fans欧斯搞列(怎么办呢).
我想到了Apache,翻倒一番终于看到了Axis这个webService 服务器,这是一个服务器我晕,居然还可以在运行的时候动态替换服务类文件.呵呵~可惜的是这只是一个单独的服务器,而不同与Grails是一个框架解决方案. Axis 可以根据 wsdl 自动生成调用webService的java类文件.
我们可以先到Axis/lib目录下面,用CMD执行
java -classpath ".;commons-logging-<chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.0.4</chsdate>.jar;axis.jar;commons-discovery-0.2.jar;jaxrpc.jar;wsdl4j-1.5.1.jar; " org.apache.axis.wsdl.WSDL2Java -o "abcdefg" http://localhost:8080/DerbyDemo/services/Test?wsdl
这些都是在一行里面 千万不要分行要不会报错的
-o 指定输出目录
后面跟上服务地址的 wsdl地址即可
|
这个在Axis/lib目录下就会多出abcdefg 目录 ,下面变是为这个Test服务生成的调用java类文件.我们只要把这个类文件直接复制到java IDE中,
然后写一个简单的测试类:
public static void main(String[] args) {
try {
Test_Service adcInterface = new Test_ServiceLocator();
Test_PortType test = adcInterface.getTestHttpPort();
//以下就要调用的方法
System.out.println(test.otherMethod2("asd"));
System.out.println(test.add(33,11));
} catch (Exception e) {
e.printStackTrace();
}
|
OK就会看到结果了.当然把这些类直接放到Grails中的 %Grails_Application%\src\java目录下,那么在Groovy脚本中也就能这么调用了.
分享到:
相关推荐
grails+Xfire webservice
Grails+ZK文档,Grails+ZK文档,Grails+ZK文档,Grails+ZK文档
通过阅读《Grails+groovy 完整参考手册.docx》,你可以更深入地了解这两个技术,包括它们的原理、最佳实践以及实际应用中的案例。无论你是初学者还是有经验的开发者,这份手册都将是你学习和提升技能的宝贵资源。
### Grails快速开发Web应用程序知识点解析 #### 一、Grails框架概述 - **定义**:Grails是一个基于Groovy语言构建的开源Model-View-Controller (MVC) Web开发框架。它旨在简化Web应用程序的开发流程,提高开发效率...
标题“grails,xfire和groovyws共存”涉及到的是在Java开发环境中,如何将三个不同的技术框架——Grails、XFire和GroovyWS整合在一起以实现Web服务的功能。Grails是一个基于Groovy语言的全栈式Web应用框架,XFire是...
Grails+Apache構築手順 apache配置手順 tomcat配置手順
Grails是一个基于Groovy语言的全栈式、敏捷的Web应用框架,它简化了Java开发流程,提供了丰富的插件生态系统。Spring Security,原名Acegi Security,是Spring框架的一个扩展,用于提供身份验证和授权服务,适用于...
- **部署和运维**:了解 Grails 应用在生产环境下的部署流程,包括配置管理、日志记录和监控策略。 ### 实战应用 本书不仅提供了理论知识,还包含了大量的实战案例,如构建 RESTful API、实现安全认证、集成第三方...
本文主要讲述了如何在使用 JDK 1.8 的环境下,通过 IntelliJ IDEA 2015 版本搭建 Grails 3.x 的开发环境,下面将详细介绍相关步骤与知识点。 ### JDK环境配置 首先,开发 Java 应用程序需要安装 Java 开发工具包...
自己买的书,然后用扫描机扫描的,整个文件太大了,不能一次性上传上来,所以拆成3个part。 我自己学grails很想看这本书,结果网上没有,就自己去买了,然后共享给需要的人。 如果有什么问题请联系我下架。
自己买的书,然后用扫描机扫描的,整个文件太大了,不能一次性上传上来,所以拆成3个part。...我自己学grails很想看这本书,结果网上没有,就自己去买了,然后共享给需要的人。 如果有什么问题请联系我下架。
在本文中,我们将详细探讨如何在Eclipse集成开发环境中搭建Grails开发环境。Grails是一个基于Groovy语言的开源Web应用程序框架,它简化了Java平台上的Web应用开发流程。通过Eclipse,我们可以获得强大的开发工具支持...
《Grails技术精解与Web开发实践11-20章》是一本专注于Grails框架的深度解析书籍,尤其适合初学者和希望提升Grails开发技能的IT从业者。Grails是一种基于Groovy语言的开源Web应用框架,它以其高效、灵活和强大的特性...
2. **安装与环境配置**:讲解如何在不同的操作系统上安装Grails SDK,配置开发环境,包括Java版本的选择,IDE集成,以及设置全局和项目的环境变量。 3. **第一个Grails应用**:通过创建一个简单的应用,读者将学习...
Grails开发环境配置及应用开发 Grails是一种基于Java的Web开发框架,它提供了一个灵活、快速和高效的开发方式。为了让开发者更好地使用Grails,...通过配置Grails开发环境和应用开发,我们可以快速地开发Web应用程序。
【标题】"grails_blog:Grails + MongoDB 博客" 涉及的主要知识点是 Grails 框架与 MongoDB 数据库的结合使用,创建一个博客应用。Grails 是一个基于 Groovy 语言的全栈式开发框架,而 MongoDB 是一种流行的NoSQL...
Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,尤其适合快速构建动态网站。在Eclipse中搭建Grails项目可能相对复杂,但通过以下步骤,即使是初学者也能顺利进行。 1. **Grails环境安装** - ...
Grails是一个基于Groovy语言的开源Web应用框架,它简化了Java开发流程,提供了MVC架构,使得开发快速且高效。其特点是自动化的代码生成、强大的插件系统和灵活的数据持久层支持。在与AngularJS集成时,Grails可以...