原文地址:http://wso2.org/library/90
Q:如何将基于Axis2的Web Service集成到自己的webapp?
A:让我们试着发布一个简单的Axis2到我们自己的webapp中。首先我们需要将Axis2 Servlet写到我们的web.xml中。看下面一段:
<web-app>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>
org.apache.axis2.transport.http.AxisServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
接下来,我们需要一个简单的web service。让我们看一下BookService.java中的2个函数片段findBook和getBooks(译者注:其总的Book类需要自己另外实现,很简单,所以作者和译者都没有给出:)):
public Book[] getBooks() {
return new Book[]{onlyBook};
}
public Book findBook(String isbn) {
if (isbn.equals(onlyBook.getIsbn()))
return onlyBook;
return null;
}
接下来,我们需要为BookService写一个部署描述。正如你看到的,你可以用RPCMessageReceiver发布一个POJO,你也可以为web service本身的schema指定一个namespace。
<serviceGroup>
<service name="BookService" targetNamespace="http://ws.apache.org/axis2/samples/book/">
<description>Book sample service</description>
<schema schemaNamespace="http://ws.apache.org/axis2/samples/book/xsd/"/>
<parameter name="ServiceClass" locked="false">samples.demo.BookService</parameter>
<operation name="getBooks">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="findBook">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
</service>
</serviceGroup>
接下来我们需要准备aar吗?aar是为了热部署和service的隔离,这个是一个集成,所以接下来的“Exploded deployment option”意思是在WEB-INF中建立一个如下的目录结构:
\---WEB-INF
| web.xml
|
\---services
\---BookService
\---META-INF
services.xml
通常我们都会将BookService.aar发布到services目录中,这里,我们建立一个为BookService的目录并将部署描述文件(services.xml)放到META-INF目录下。恩,我们忘记什么了吗?是的,如何使用maven2的环境尽行简单的构建?一下是我们maven2的结构:
\---book
| pom.xml
| README
|
\---src
+---main
| | log4j.properties
| |
| \---samples
| \---demo
| Book.java
| BookService.java
| +---test
\---webapp
\---WEB-INF
| web.xml
|
\---services
\---BookService
\---META-INF
services.xml
所有需要的jars通过maven2都自动从Apache和Ibiblio下载了。因此,你甚至可以不下载Axis2就可以发布这个简单的工程。所有你需要处理的就是解压zip包如下:
$ mvn install war:war
然后将等到的war文件重命名为axis2.war,你可以将它放到任何servlet引擎。一旦你的servlet引擎启动,你可以通过如下service看到wsdl:
http://yourhost:port/axis2/services/BookService?wsdl
分享到:
相关推荐
总的来说,基于Axis2的Web Service快速开发涉及到理解Web Service的基本概念,熟悉WSDL、SOAP和UDDI等关键技术,以及掌握Axis2的安装、部署和使用方法。通过这些步骤,开发者可以快速构建和发布自己的Web Service,...
【用Axis2开发Web Service】是本文的核心主题,轴心技术是Java开发Web服务的一种框架,相较于Axis1,其过程更为简洁。以下是关于使用Axis2开发Web Service的详细步骤和知识点: 1. **实验环境搭建**: - 首先确保...
接下来介绍如何将Axis2集成到现有的Web项目中。 1. **准备工作** - 创建一个名为`myproject`的Web项目。 - 将Axis2的`lib`目录下的所有JAR文件复制到`myproject/WEB-INF/lib`目录下。 - 将`axis2.war`中的MAR...
- 使用 **Ant** 命令执行 `C:\JavaPlatform\axis2\webapp\build.xml` 文件,完成构建后会在 `C:\JavaPlatform\axis2\dist` 目录下生成 `axis2.war` 文件。 - 将 `axis2.war` 文件复制到 Tomcat 的 `webapps` 目录...
下面我们将逐步讲解如何在Eclipse集成开发环境中,结合Tomcat服务器,使用Axis2来创建并部署Web服务。 1. **下载与解压Axis2**: 首先,你需要从官方网站或者指定链接下载Axis2的发行版,例如axis2-1.1.1.zip,并...
2. 使用ant命令处理axis2\webapp目录下的build.xml文件,生成axis2.war文件,然后将其复制到Tomcat的webapps目录下。启动Tomcat,通过浏览器访问http://127.0.0.1:8080/axis2,如果看到axis2的欢迎页面,说明axis2已...
本指南将详细讲解如何使用Axis2进行Web服务的开发,从基础准备到高级特性,全方位解析Axis2的功能。 一、开发准备 1. 开发环境 开发前需要下载Axis2的相关JAR包,可从Apache官网获取最新版本。同时,为了简化开发...
- 将编译后的`HelloWorldService.class`文件复制到Tomcat的`webapps/axis2/WEB-INF/pojo`目录下。(如果不存在`pojo`目录,则需手动创建)。 - 访问`http://localhost:8080/axis2/services/listServices`查看已发布...
将编译后的`.class`文件放入Tomcat的`webapps/axis2/WEB-INF/pojo`目录下。 - 如果`pojo`目录不存在,则需手动创建。 - 在浏览器中输入:[http://localhost:8080/axis2/](http://localhost:8080/axis2/) 或 ...
在Java Web服务开发领域,Apache Axis2和Apache CXF都是广泛使用的框架,但它们各自有着不同的定位和特点。下面是关于Axis2和CXF的详细比较,以及如何使用它们来创建和发布Web服务。 1. 对比 Axis2 和 CXF Axis2是...
本教程将通过一个简单的实现示例来介绍如何创建和使用Web服务,具体演示项目名为“simple-service-webapp”。 首先,我们要理解Web服务的基本概念。Web服务通常基于SOAP(Simple Object Access Protocol)协议,...
- **中间件服务器提供的技术**:如JBoss、WebLogic等应用服务器都内置了自己的Web Service实现。 - **第三方框架**:如Apache CXF、Apache Axis、XFire等专门针对Web Service的开源框架。 #### 三、Apache CXF...