登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: [java] axis 在 tomcat 下的安装     [回主站]     [分站链接]
标题
[java] axis 在 tomcat 下的安装
我是马甲
浏览(0) + 2007-06-25 21:40:21 发表 编辑

关键字:

[java] axis 在 tomcat 下的安装

首先建立一个虚拟目录

在文件 D:\jakarta-tomcat-5.0.28\conf\server.xml 中加入一行即可.在 之前加入



启动Tomcat后 可以用如下的方式访问:

http://localhost:8080/javajia
其中path的值是虚拟目录

docbase若是以或盘符开始 则是你的硬盘目录的绝对路径。

若不是 则是相对于%Tomcat_Home%的相对路径


这里有个问题,虚拟目录的根必须指向
D:\tomcat\axis-1_4\webapps\axis
而不是有些文章说的
D:\tomcat\axis-1_4\
也许是 axis 版本不同吧,否则会出现著名的 "Can't find bundle for base name i18n" 问题,这是中文版特有的问题,还真不好解决.



我是马甲
2007-6-25 21:41:58 发表 编辑

下面是一个例子,可能比较老.要注意.
--------------------------------------------------
http://www.5inet.net/Develop/Java/038235.html
--------------------------------------------------

利用Axis在Java平台上部署WebService简明教程
出处:统一教学网
作者:dytt
编辑:N/A
发表日期:2006-6-25 15:07:00
关 键 字:
java WebService web service 教程 axis webservice教程 axis教程 AXIS,教程 webservice教程doc axis,如何部署WebService axis-1_1.zip下载 axis教程下载 axis教材 service教程.doc


技术太累,看看故事吧!
有网站吗?看看收录多少和PR值?

利用Axis在Java平台上部署WebService简明教程
作者:dytt@yeah.net



注:本文Web服务器采用Bea WebLogic



Axis能够让你编写webservice就如同写函数那么简单,下面将一步步介绍:



1、 编写一个Java Class,里面写一个静态函数sayHello(String name),这个sayHello就是我们要编写的用来做接口的webservice函数。(注:一定要写成静态函数,Axis只会把静态函数转换成WebService)

程序代码(HelloBeauty.java)如下:



public class HelloBeauty {

public static void main(String[] args) {

}

public static String sayHello(String name)

{

return name + ",You are a beauty girl . ";

}

}



2、 下载axis-1_1.zip,
解压,并部署成Web站点。

Axis-1.1目录结构如下:




Axis-1.1

-----doc

-----lib

-----samples

-----webapps

-----xmls

-----LICENSE

-----README

-----release-notes.html




在web服务器上新增一虚拟目录(这里暂把虚拟目录名设为Axis,
可以根据情况自行更改),虚拟目录的根节点设置到Axis-1.1目录。



3、 部署

把我们前面编写的HelloBeauty.java拷贝到Axis-1.1/webapps 目录下,
并且把文件后缀改成jws,即HelloBeauty.jws。

4、 访问

打开IE,输入http://Web服务器地址/axis/HelloBeauty.jws

会出现经过Axis处理后的页面,页面内容如下。




There is a Web Service here

Click to see the WSDL



看到上面的页面后即代表你的WebService部署成功了。

其他人可以通过http://Web服务器地址/axis/HelloBeauty.jws?wsdl 来调用你的WebService了。

我是马甲
2007-6-25 21:43:23 发表 编辑

总之还是很简单的,下面有个复杂多的.
--------------------------------------------------
http://download.enet.com.cn/blog/index.php?itemid=13381
--------------------------------------------------
通常我们都使用Java语言开发Web Service,其实也可用效率和性能更高的C/C++语言来构建Web Service,Apache的Axis C++就是一个很好的选择。

Linux下用Axis C++构建WebService
Aigui.LIU@CC-IHEP
2006-03-17

一、引言
相比于Java版的Axis,Axis C++在安装配置和开发部署新的Web服务都比较复杂,开发时要关注每一个细节,因为Axis C++[1]本身并没有详细的日志信息,当出现错误的时候很难跟踪哪个环节出了问题。另外,Axis C++对WSDL信息的内容要求非常严格,而且往往找不到问题所在。虽然存在一些问题,但是Axis C++在性能上还是有很多优势,也因此是许多Web服务开发者的首选。[2]
至于Axis C++的安装配置,请参考其官方文档[1]。另外,还可以使用gSoap[3]来开发C/C++的Web服务。 gSoap是一个开源项目,可以从SourceForge下载。
二、基本过程
使用Axis C++开发Web服务的基本过程可以简单描述如下:
1、使用Java语言描述WEB服务
2、使用Java2WSDL工具生成WSDL文件
3、使用WSDL2Ws工具生成服务端代码框架
4、编码实现service,并部署服务
5、使用WSDL2Ws工具生成客户端代码框架
6、编码实现客户端
三、实例演示
这里以一个简单的加法Add服务来说明用Axis C++构建webService的过程。
1、使用Java语言描述WEB服务
Axis C++中我们必须先定义好WSDL后方可生成用来实现该服务的代码框架,这一点与Axis Java不同。生成WSDL方法很多,可以使用Java2WSDL工具,当然也可以手工编写,这里我们使用Java2WSDL工具生成。下面我们对Add 服务用Java语言描述:

public interface Add{
public int add(int x, int y);
}

我们只要方法的声明即可,不需要实现方法,因此我们使用接口来定义。将上面的代码保存为Add.java。

2、使用Java2WSDL工具生成WSDL文件
javac Add.java (生成.class文件)
java -Djava.ext.dirs=$AXISCPP_HOME/lib/axisjava org.apache.axis.wsdl.Java2WSDL -o Add.wsdl -l"http://localhost/axis/Add" -n"http://localhost/axis/Add" Add

经过上面两步,我们就可以得到Add.wsdl文件。需要说明的是,生成的WSDL文件有时会有错(intf都成了impl),这可能是 Java2WSDL工具的Bug。如果出现这种情况,可以和Axis C++自带的例子WSDL文件对比。(注:我花了两天时间才找出这个问题)

3、使用WSDL2Ws工具生成服务端代码框架
有上面的WSDL文件,我们可以用WSDL2Ws工具生成服务端构架。
java -Djava.ext.dirs=$AXISCPP_HOME/lib/axisjava -cp $AXISCPP_HOME/lib/axis/wsdl2ws.jar org.apache.axis.wsdl.wsdl2ws.WSDL2Ws Add.wsdl -lc++ -sserver

-s server 表示生成server代码框架
-l c++ 表示生成C++代码
4、编码实现service,并部署服务
上面生成的文件中,我们只需要实现Add.cpp中的add方法即可。
... ...
xsd__int Add::add(xsd__int Value0, xsd__int Value1)
{
return Value0+Value1;
}
... ...

对代码编译并链接生成.so动态库:
g++ -shared -I$AXISCPP_HOME/include -o libadd.so *.cpp

对服务进行部署,步骤如下:
(1).将生成的libadd.so文件复制至$AXISCPP_DEPLOY/lib目录
(2).复制Add.wsdl文件至$AXISCPP_DEPLOY/wsdls目录
(3).编辑AXISCPP_DEPLOY/etc/server.wsdd文件并在相应位置添加如下内容:




(4).重新启动HTTP服务
(5).检查http://localhost/axis是不否有新增的Add服务

为了测试我们发布的Web服务是否工作正常,我们下面利用Axis C++来生成调用该服务的客户端代码并进行测试。

5、使用WSDL2Ws工具生成客户端代码框架
java -Djava.ext.dirs=$AXISCPP_HOME/lib/axisjava -cp $AXISCPP_HOME/lib/axis/wsdl2ws.jar org.apache.axis.wsdl.wsdl2ws.WSDL2Ws Add.wsdl -lc++ -sclient

-s client 表示生成client代码框架
-l c++ 表示生成C++代码
6、编码实现客户端
上述命令生成了Add.hpp, Add.cpp,我们再编写客户端入口程序 AddClient.cpp:
#include "Add.hpp"
#include

int main(int argc, char** argv)
{
Add ws("http://localhost/axis/Add");
int sum;
if(argc<2)
{
printf("Usage:%s num1 num2\n", argv[0]);
return -1;
}
sum = ws.add(atoi(argv[1]),atoi(argv[2]));
printf("%d\n",sum);
return 0;
}

编译客户端,生成可执行文件:
g++ -I$AXISCPP_HOME/include -L$AXISCPP_DEPLOY/lib -laxis_client -ldl -o Add *.cpp

之后,可以用Add命令测试服务工作是否正常。

四、参考文献
1、官方网站
2、Linux下使用Axis C++构建Web服务(开发篇)
3、用C实现WebService
发表时间: 03/21/06 08:24:30 作者: 白开水 - 白开水门户首页 - 分类: 软件原创门户

我是马甲
2007-6-25 21:45:44 发表 编辑

其实是先看了一个说得很不清楚的,如下.但也还算有参考价值.
--------------------------------------------------

IPADDR(漂,一直漂,BCOMCN,ASPBIZ 马甲可真多)原创,转载请注明.

网上有一些AXIS的安装文档,不是很详细,而且,我按网上的资料安装得不是很成功,老是报错,可能是因为使用了较新版本的Tomcat,AXIS.

经过多番努力,终于配置成功,把安装过程和心得和大家分享一下.

一.简介
什么是SOAP?SOAP是一个应用程序间的基于XML的通信工具和规范.SOAP最初由MicroSoft和Userland公司开发,已经演化了好几个版本,当前的版本SOAP1.1正飞速发展.W3C的XML协议工作组正努力把它发展为一个真正的开发的标准.SOAP1.2草案已经发布,它能澄清1.1版规范的容易混淆的地方.

什么是Axis?Axis总体上是一个SOAP引擎,但又不仅仅是个引擎,它还:1)是一个简单的独立的服务器2)是一个可插入到servlet引擎(如Tomcat)中的服务3)可扩展的支持WSDL4)能根据WSDL产生JAVA文件/类5)包括一些例子程序6)包括一个可以监控TCP/IP包的工具

Axis起源于IBM的SOAP4J,是Apache SOAP的第三代产品,相对于以前的版本,它有如下特性:1)快速,它使用了基于事件的SAX解析机制.2)灵活,用户可以灵活定制扩展.3)稳定,接口将会变动很小.4)基于组件开发.5)支持WSDL1.1

二.准备
1.安装Tomcat5.0.28,这是当前稳定版本.Tomcat运行在80端口.访问http://localhost/检查Tomcat是否安装成功.
(Tomcat+Apache+Mysql的整合安装,详见另外一篇.)
2.下载AXIS:
官方站点:http://xml.apache.org/axis/index.html
下载软件:axis-bin-1_2_1.tar.gz
3.下载相关包:
a.mail.jar 下载地址:http://java.sun.com/products/javamail
b.activation.jar 下载地址:http://java.sun.com/products/javabeans/glasgow/jaf.html
c.xerces.jar 下载地址:http://xml.apache.org/xerces-j/index.html
d.xmlsec-1.2.1.jar 下载地址:http://xml.apache.org/security/

三.安装
1.将四个相关包,全部拷到;/common/lib目录(Tomcat安装目录下的common/lib)下
2.解压axis-bin-1_2_1.tar.gz,将压缩包里的webapps/axis拷到网站根目录下(如果Tomcat是默认配置,那就是;/webapps/ROOT目录).
3.
修改Tomcat的配置文件server.xml(;/conf/server.conf)
在;前加入:
; ;
(docBase里是你的实际axis存放的目录)
注意,此步至关重要,AXIS的安装文档中没有提到此步,导致很多人安装不成功.
如果没有此步,访问http://localhost/axis时,提示如下错误:
Can't find bundle for base name i18n, locale en_US(zh_CN)
表面是上看i18n国际化的问题,但既使i18n.properties,i18n_zh_cn.properties存在,也无法找到.
网上很多朋友安装到此,无法继续下去,我也找了很多资料,都没有解决.后来查看Tomcat的文档,猜测是Tomcat配置的问题,经测试,终于成功.
可能Tomcat的前期版本,不需此设置.没有测试过.
另外,也可以将axis/WEB-INF/classes/*,axis/WEB-INF/lib/*的所有文件,拷到;/common/lib/这个方法比较麻烦.
注:AXIS客户端,需要拷贝axis/WEB-INF/lib/*到;/common/lib/

四.测试
重新启动Tomcat.
1.访问:http://localhost/axis
点击:Validation - Validate the local installation's configuration测试是否有错.
2.
写个小程序:
public class HelloService
{
public String sayHello(String username)
{
return "Hello:"+username;
}
}
另存为axis目录下HelloService.jws
再能过WEB访问:
http://loalhost/axis/HelloService.jws
http://loalhost/axis/HelloService.jws?method=sayHello¶meter=ipaddr


另外,如果是Apache+Tomcat整合在一块,以上配置后,还需要更改Apache的配置,在httpd.conf中加入:
JkMount /axis/* ajp13
通过Apache可以访问axis的Servlet

我是马甲
2007-6-26 19:58:07 发表 编辑

--------------------------------------------------
http://dlog.cn/html/diary/showlog.vm?sid=2&log_id=406
--------------------------------------------------

(AXIS)根据WSDL来生成服务端实现框架
2004/08/06 作者:本站原创 心情: 星期五 (10:17)

一般情况下我们使用Web服务都是通过服务端提供WSDL信息来生成客户端的调用框架,但也不尽然,比如说通讯双方先定义好协议,也就是说最新确定下来的是WSDL,就比如说移动的MISC平台的1.6版,我们从移动获取到的dsmp.wsdl,现在必须依照dsmp.wsdl来生成服务端的实现框架,也就是说我们是作为web服务的服务端来给MISC平台调用,这跟我之前两篇文章讲的内容有点不同,就是出发点不同。我们可以通过下面的命令来生成服务端的实现框架,注意红色粗体字的地方

java -Djava.ext.dirs={axis-lib} org.apache.axis.wsdl.WSDL2Java --server-side dsmp.wsdl

AXIS将为我们生成的文件如下表所示:
文件名 说明
Address_info_schema.java 位于包com.monternet.www.dsmp.schemas中
SyncOrderRelationReqType.java 同上
SyncOrderRelationRespType.java 同上
User_id_schema.java 同上
Dsmp.java
DsmpLocator.java
MaPort.java 远程方法定义接口类
MaPortBindingImpl.java Web服务的方法在此实现(此类需用户完成)
MaPortBindingStub.java
deploy.wsdd 用于发布服务的命令文件
undeploy.wsdd 用于取消服务的命令文件


上表中红色的行即为我们待完成的类,该类就是Web服务的实现类,代码如下:

/**
* MISC 1.6平台的同步订购关系的实现
* @author liudong
*/
public class MaPortBindingImpl implements MaPort {

/**
* TODO: MISC 1.6平台的用户订购关系同步接口
* @param req 同步订购关系请求
* @return SyncOrderRelationRespType 回应
*/
public SyncOrderRelationRespType syncOrderRelation(
SyncOrderRelationReqType req) throws RemoteException {
return null;
}

}

完成该类后将deploy.wsdd中的service一段拷贝到server-config.wsdd文件中对应的位置即可完成web服务的服务端部署。当然你也可以用Axis的工具来部署web服务,
java org.apache.axis.client.AdminClient deploy.wsdd
即可用http://localhost:8080/axis/service/maPort 访问该服务。
--------------------------------------------------
这篇也不错,不过 AdminClient 的用法不全,路径问题通常很麻烦.我是用
java -Djava.ext.dirs=D:\jakarta-tomcat-5.0.28\axis-1_4\lib org.apache.axis.client.AdminClient -lhttp://127.0.0.1:8080/a1/services/AdminService deploy.wsdd

另外要先把编译好的类放到 tomcat 的类目录中,我是直接放在了 axis 的目录

D:\jakarta-tomcat-5.0.28\axis-1_4\webapps\axis\WEB-INF\classes

不打包成 jar 也是可以的,保持目录结构就行.

我是马甲
2007-6-26 19:58:54 发表 编辑

http://www.ibm.com/developerworks/cn/webservices/ws-axisfaq/index.html

这个也不错


总数:5 页次:1/1 首页 尾页  
总数:5 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1