标题
[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" 问题,这是中文版特有的问题,还真不好解决.
我是马甲
下面是一个例子,可能比较老.要注意. -------------------------------------------------- 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了。
我是马甲
总之还是很简单的,下面有个复杂多的. -------------------------------------------------- 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 作者: 白开水 - 白开水门户首页 - 分类: 软件原创门户
我是马甲
其实是先看了一个说得很不清楚的,如下.但也还算有参考价值. -------------------------------------------------- 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
我是马甲
-------------------------------------------------- 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 也是可以的,保持目录结构就行.
我是马甲
http://www.ibm.com/developerworks/cn/webservices/ws-axisfaq/index.html 这个也不错
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.