Grails+Xfire 搭建Web Service环境

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" />0.7.3.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-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" 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脚本中也就能这么调用了.

 

 

时间: 2024-10-07 10:36:34

Grails+Xfire 搭建Web Service环境的相关文章

spring mvc-在Eclipse中使用Maven+Spring mvc +cxf搭建Web Service

问题描述 在Eclipse中使用Maven+Spring mvc +cxf搭建Web Service 请各路大神给出详细步骤,包括项目怎么建.各种配置文件怎么配.Java类里面怎么写(可以是一个简单的hello world)等等,最好有截图,非常感谢!

基于xfire的web service开发例子

1. 开发服务接口 package com.yanek.demo.webservice; public interface IHelloWorldService {        public String sayHello(String name);        public String[] getUsers();    public User[] getUserList();    } 2. 开发开发服务接口实现类 package com.yanek.demo.webservice; p

python +Django 搭建web开发环境初步,显示当前时间

1.python 的安装 网上很多关于django跟python 开发的资料,这块我正在实习准备用这个两个合起来搞一个基于web 的东西出来现在开始学习,写点东西记录一下心得. 开发环境是windows的,所以我们到python官网下载64位的windows操作系统的安装包: https://www.python.org/ftp/python/3.4.3/python-3.4.3.amd64.msi 这个版本直接添加了系统的环境变量非常的方面(吐槽一下各种开发环境环境变量的配置). 2.Djan

Web Service 使用分布式事务出错(OLE DB provider &amp;#39;SQLOLEDB&amp;#39;无法启动分布式事务)

 环境: Windows XP SP2. Sql Server 2000     问题描述:在搭建Web Service时,访问了远程数据库的Link Server(即应用服务器访问了两台数据库服务器),执行SQL语句,如下:       begin   transaction     select CNCJ.dbo.Custmoer.TotalVol FROM  CNCJ.dbo.Customer c1 left join OrderHeaderID o1 on c1.OrderID = o1

简单的Web Service(自己试过MyEclipse XFire写过)

本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web Service的基本开发过程:   1.系统条件: Eclipse Java EE IDE for Web Developers Java SE 6 Windows XP 2.基本环境搭建: 1)Java SE6 JDK的安装:下载Java SE6 JDK,双击,安装默认选项进行安装即可. 2)Eclipse的安装与配置:     安装时直接解压.      配置处有两点,Window>Preferenc

讲解使用Docker搭建Java Web运行环境_docker

Docker 是一种"轻量级"容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了.作为一名 Java 程序员,我们是时候一起把 Docker 学起来了! 本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引出一些 Docker 的名词术语,比如:容器.镜像等,随后将使用 Docker 搭建一个 Java Web 运行环境,最后将对本文做一个总结. 我们先来回顾一下传统虚拟化技术的体系架构: 可见,我们

详解使用Docker搭建Java Web运行环境_docker

这周末体验了一下挺火的Docker技术,记录学习笔记. >Docker是干什么的 Docker 是一个基于Linux容器(LXC-linux container)的高级容器引擎,基于go语言开发, 源代码托管在 Github 上, 遵从Apache2.0协议开源.Docker的目标是实现轻量级的操作系统虚拟化解决方案. 学习Docker首先要了解几个概念: 镜像-Docker的镜像和常见的系统ISO镜像类似,包含了应用程序的信息: 容器-容器相当于一个可以运行起来的虚拟机,应用程序运行在容器中,

搭建Web服务器 绿色PHP环境套件e2php

e2php是Windows下的Apache + PHP + MySQL + Zend + eAccelerator + PhpMyAdmin的绿色环境套件,免安装,几秒钟即可搭建Web服务器. 如何使用e2php: 1.先点击下载e2php解压包,解压到任意目录(不要含中文路径). 2.运行目录内的e2php.exe执行文件,在电脑桌面右下方(系统托盘)处可看到该程序图标. 3.鼠标左键单击该程序图标,将会出现菜单选项. 启动Apache,仅启动Apache服务,重启,停止略,启动MySQL,仅

Java web Service 引擎 Xfire 图文教程

1.给web项目添加web service支持,web.xml文件会自动修改. <SERVLET-NAME>XFireServlet</SERVLET-NAME> <SERVLET-CLASS>org.codehaus.xfire.transport.http.XFireConfigurableServlet</SERVLET-CLASS> <LOAD-ON-STARTUP>0</LOAD-ON-STARTUP> <SERVLE