日期:2014-05-16 浏览次数:21053 次
?
??? WebService概念:它可以让一个程序透明的调用互联网程序,不用管具体实现细节,只要WebService公开了服务接口,远程客户端就可以调用服务。Webservice基于HTTP协议,它是分布式应用程序的发展趋势。
??? Apache Axis是一个开源的WebSerbive运行引擎,现在拥有1.x和2.x两个版本。本文讲解Axis2.x版本,该版本较Axis1.x版本在体系结构上进行了重写,具有更高的效率、更加模块化也更加面向XML。Axis应该是最早一批SOAP(简单对象访问协议),该协议提供了标准的RPC方法来调用WebService。SOAP、RPC是建立在HTTP请求响应模式上的。
1.环境准备:
IDE:Eclipse3.5
依赖的JAR文件:
www.apache.org(Apache官方网站)上去下载:
a.WebService所需的包,这里我们下载Axis2的1.5.1版本。
b.Jakarta项目下的Ex-Jakarta项目下的HttpComponents子项目的核心JAR包,HttpCore4.1-alpha1的Binary包。
配置Eclipse,Eclipse自带了开发WebService的工具。
打开Eclipse-->点击菜单windows-->Preferences-->WebServices-->Axis2Preferences-->设置Axis2 runtime location为Axis2下载后并解压的核心包的位置:
选择后Eclipse会自动检测包是否正确。如果successfully提示表示设置正确。
2.在Eclipse创建一个WebProject时,点击Configuration的Modify会出现下图界面:
勾选Axis2 Web Services按OK。回到新建WebProject界面,完成项目创建。
创建成功后会发现在WEB-INF文件夹下会多出一个axis2-web的文件夹,这个是Axis2的项目文件夹。
现在启动服务器会抛出异常,这是因为Eclipse在自动加载生成该项目时有几个问题需要手动修复,下面分别列出:
问题一:会抛出异常:java.lang.ClassNotFoundException: org.apache.axis2.transport.http.AxisAdminServlet
是因为生动生成的web.xml文件中所指定的AxisAdminServlet包路径有错。
自动生成的源码如下:
<servlet>
??? <display-name>Apache-Axis Servlet</display-name>
??? <servlet-name>AxisServlet</servlet-name>
??? <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
? </servlet>
? <servlet-mapping>
??? <servlet-name>AxisServlet</servlet-name>
??? <url-pattern>/servlet/AxisServlet</url-pattern>
? </servlet-mapping>
? <servlet-mapping>
??? <servlet-name>AxisServlet</servlet-name>
??? <url-pattern>*.jws</url-pattern>
? </servlet-mapping>
? <servlet-mapping>
??? <servlet-name>AxisServlet</servlet-name>
??? <url-pattern>/services/*</url-pattern>
? </servlet-mapping>
? <servlet>
??? <display-name>Apache-Axis Admin Servlet Web Admin</display-name>
??? <servlet-name>AxisAdminServlet</servlet-name>
??? <servlet-class>org.apache.axis2.transport.http.AxisAdminServlet</servlet-class>
??? <load-on-startup>100</load-on-startup>
? </servlet>
? <servlet-mapping>
??? <servlet-name>AxisAdminServlet</servlet-name>
??? <url-pattern>/axis2-admin/*</url-pattern>
? </servlet-mapping>
注意红色字体部分,我们可以去看一下所下载的Axis2的源包。AxisAdminServlet类所在的包路径并不在下列这个路径中org.apache.axis2.transport.http,该类是属于包org.apache.axis2.webapp下。
问题二:会抛出异常:java.lang.ClassNotFoundException: org.apache.http.HttpResponseFactory,是因为少JAR包。将开始下好的HttpCore4.1-alpha1包解压后主文件夹下的lib文件夹下有httpcore-4.1-alpha1.jar包。将其拷贝到WEB-INF下的lib文件夹中。
重启服务器,正常启动成功,在浏览器地址栏输入:http://localhost:9000/WebServiceProject/axis2-web/
进入主页,如下图:表示Axis2部署成功:
点击Validate进入验证Axis2环境界面:
这个页面会加册Axis2运行必备的一些库是否已具备,如果看到下列图中的绿色字体表示环境已搭建成功: