- 浏览: 419986 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (114)
- C++ (1)
- JAVA (58)
- sql,oracle,mysql (7)
- struts (2)
- tomcat (6)
- JS CSS (6)
- 其他 (7)
- javascript (4)
- exception (1)
- error (1)
- hashmap (1)
- hashset (1)
- python (1)
- sql (2)
- oracle (4)
- mysql (2)
- weblogic (3)
- session (2)
- http-only-cookie (1)
- httponly (1)
- cookie (1)
- ide (0)
- intellij (1)
- eclipse (2)
- idea (1)
- connection (2)
- maven (4)
- m2eclipse (2)
- m2e (2)
- InetAddress (1)
- DNS (1)
- web (1)
- goals (1)
- copy-dependencies (1)
- unpack (1)
- hash (1)
- 分布式 (1)
- gc (4)
- volatile (1)
- rsa (1)
- 加密 (1)
- 签名 (1)
- socket (1)
- tcp (1)
最新评论
-
xuxiaoyinliu:
谢谢,不错哦
有关cookie的httponly属性相关 -
雁行:
svn根本就不需要这么罗嗦的实现。
版本比较,直接出增量文件, ...
ant+cvs实现增量部署 -
ludatong110:
这个东西在IE里面会很明显的,我就碰到过IE中因为这个HTML ...
有关jqGrid应用里的字体大小不能控制的问题 -
labchy:
非常感谢 解决了问题
有关jqGrid应用里的字体大小不能控制的问题 -
tengyue5i5j:
Crusader 写道竟然有这么多人投良好。。。
楼主的思路有 ...
java实现一个栈,并提供取该栈中最大数的方法,复杂度O(1)
axis1.4集成和应用示例
前言:网上很多有关axis1.4的应用示例,大部分是官方doc的翻译和example的翻译,helloword等等。
最近有个需求是提供带参数的方法接口,返回自定义对象,刚好熟悉下axis1.4用法。
步骤:
1:下载axis1.4的包解压到本地,至于axis的环境变量看情况,想配就配,不想配也无所谓,就是使用axis的命令时候会麻烦点。
2:查看axis-1_4\docs\install.html下的 《
Advanced Installation: adding Axis to your own Webapp
》一项内容,这个是将axis1.4集成到自己的web应用里的方法,网上大部分教你的是直接将axis1.4包里的web应用放入tomcat里,然后在此基础上开发自己的webservice,其实是一样的道理,将该web里的web.xml里的内容copy到自己原有web应用的web.xml里,然后将axis1.4的lib里的相关依赖包加到自己的web里就可以在自己的应用里开发webservice了。
3:相关代码
3.1:pojo类
package com.asiainfo.boss.channel.channelservices; import java.io.Serializable; public class MenuNodeInterface implements Serializable{ /** * serId */ private static final long serialVersionUID = 4859157035701539929L; /** * 菜单名称 */ private String S_Caption; public MenuNodeInterface(){ this.S_Caption="陈超"; } public String getS_Caption() { return S_Caption; } public void setS_Caption(String caption) { S_Caption = caption; } }
3.2:封装的结果类
package com.asiainfo.boss.channel.channelservices; import java.io.Serializable; import java.util.ArrayList; import java.util.List; public class EsopResult1 implements Serializable{ /** * seriaId */ private static final long serialVersionUID = -1922115715606536898L; /** * 0:成功 1:失败 */ private Short returnCode=1; private List<MenuNodeInterface> sysMenuNodeList; private String errorMsg; public EsopResult1(){ sysMenuNodeList=new ArrayList<MenuNodeInterface>(); sysMenuNodeList.add(new MenuNodeInterface()); } public Short getReturnCode() { return returnCode; } public void setReturnCode(Short returnCode) { this.returnCode = returnCode; } public List<MenuNodeInterface> getSysMenuNodeList() { return sysMenuNodeList; } public void setSysMenuNodeList(List<MenuNodeInterface> sysMenuNodeList) { this.sysMenuNodeList = sysMenuNodeList; } public String getErrorMsg() { return errorMsg; } public void setErrorMsg(String errorMsg) { this.errorMsg = errorMsg; } }
3.3:服务端类
package com.asiainfo.boss.channel.channelservices; import com.asiainfo.boss.channel.channelservices.EsopResult1; public class EsopWBService1 { public EsopResult1 qryMenuNodeInfoList(long opId,long orgId){ EsopResult1 er1=new EsopResult1(); er1.setReturnCode((short)0); er1.setErrorMsg("成功"); return er1; } }
3.4:客户端类
package com.asiainfo.boss.channel.channelservices; import java.util.List; import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType; import org.apache.axis.encoding.ser.BeanDeserializerFactory; import org.apache.axis.encoding.ser.BeanSerializerFactory; public class EsopWBClient1 { public static void main(String...args){ getResult(); } public static void getResult(){ try { String endpoint = "http://localhost:8091/bjchannel/services/EsopWBService1"; Long opId = new Long(1009); Long orgId = new Long(1000); Service service = new Service(); Call call = (Call) service.createCall(); QName qn = new QName("urn:EsopWBService1","EsopResult1"); QName qn1 = new QName("urn:EsopWBService1","MenuNodeInterface"); //注册 bean call.registerTypeMapping(EsopResult1.class, qn, new BeanSerializerFactory(EsopResult1.class, qn), new BeanDeserializerFactory(EsopResult1.class, qn)); call.registerTypeMapping(MenuNodeInterface.class, qn1, new BeanSerializerFactory(MenuNodeInterface.class, qn1), new BeanDeserializerFactory(MenuNodeInterface.class, qn1)); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName(new QName("EsopWBService1","qryMenuNodeInfoList")); // Object[] sss=new Object[2]; // sss[0]=i1; // sss[1]=i2; //EsopResult1 ret = (EsopResult1) call.invoke("qryMenuNodeInfoList",new Object[]{i1,i2}); //以下两个参数必须加,不然后报数组越界异常,因为源码里的operation为的params需要手动设置 //invoke只负责往里传递数,不管原来方法参数的初始化,以下两句表明调用的方法需要初始化两个参数 call.addParameter("opId", XMLType.XSD_LONG, ParameterMode.IN); call.addParameter("orgId", XMLType.XSD_LONG, ParameterMode.IN); EsopResult1 ret = (EsopResult1) call.invoke(new Object[]{opId,orgId}); System.out.println("the operation result following:"); System.out.println("ErrorMsg = " + ret.getErrorMsg()); System.out.println("ReturnCode = " + ret.getReturnCode()); System.out.println("MenuNodeList().size() = " + ret.getSysMenuNodeList().size()); List<MenuNodeInterface> reList=ret.getSysMenuNodeList(); for(MenuNodeInterface mni : reList){ System.out.println("菜单名称:"+mni.getS_Caption()); } } catch (Exception e) { e.printStackTrace(); } } }
注:以上类涉及到的包名和应用路径名称是我现在所在公司的应用名,大家自行修改,比如bjchannel等等,根据自己情况修改。还要注意客户端类里的参数add一定要加,我开始没加就一直报数组越界异常,不知道是axis1.4相关包的问题,还是什么,我看网上和官方的ORDER示例都没有加也没事,不过加了反正没坏处。
4:我直接使用定制方式发布了,即时发布的方式大家参看附件文档
4.1:新建server-config.wsdd文件,内容如下
<?xml version="1.0" encoding="UTF-8"?> <deployment name="defaultClientConfig" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler" xmlns="http://xml.apache.org/axis/wsdd/"> <globalConfiguration name="GlobalConfiguration1" type="" regenerateElement="false"> <requestFlow name="RequestFlow1" type="" regenerateElement="false"> <handler name="Handler1" type="java:org.apache.axis.handlers.JWSHandler" regenerateElement="false"> <parameter name="scope" value="session" regenerateElement="false"/> </handler> <handler name="Handler2" type="java:org.apache.axis.handlers.JWSHandler" regenerateElement="false"> <parameter name="scope" value="request" regenerateElement="false"/> <parameter name="extension" value=".jwr" regenerateElement="false"/> </handler> </requestFlow> </globalConfiguration> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" regenerateElement="false"/> <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder" regenerateElement="false"/> <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" regenerateElement="false"/> <transport name="http" type="" regenerateElement="false"> <requestFlow name="RequestFlow1" type="" regenerateElement="false"> <handler name="Handler1" type="URLMapper" regenerateElement="false"/> <handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler" regenerateElement="false"/> </requestFlow> </transport> <transport name="local" type="" regenerateElement="false"> <responseFlow name="ResponseFlow1" type="" regenerateElement="false"> <handler name="Handler1" type="LocalResponder" regenerateElement="false"/> </responseFlow> </transport> <service name="AdminService" type="" regenerateElement="false" provider="java:MSG"> <parameter name="allowedMethods" value="AdminService" regenerateElement="false"/> <parameter name="enableRemoteAdmin" value="false" regenerateElement="false"/> <parameter name="className" value="org.apache.axis.utils.Admin" regenerateElement="false"/> <namespace>http://xml.apache.org/axis/wsdd/</namespace> </service> <service name="Version" type="" regenerateElement="false" provider="java:RPC"> <parameter name="allowedMethods" value="getVersion" regenerateElement="false"/> <parameter name="className" value="org.apache.axis.Version" regenerateElement="false"/> </service> <service name="com.asiainfo.boss.channel.channelbj.mobileplat.MobilePlatform" type="" regenerateElement="false" provider="java:AIRPC"> <parameter name="scope" value="session" regenerateElement="false"></parameter> <parameter name="className" value="com.asiainfo.boss.channel.channelbj.mobileplat.IMobilePlatform" regenerateElement="false"></parameter> <parameter name="allowedMethods" value="*" regenerateElement="false"></parameter> </service> <!-- 商机处理 提供给crm接口 --> <service name="com.asiainfo.boss.channel.channelbj.channelcomp2.webservice.busiinfo.BusiInfoDeal" provider="java:AIRPC"> <parameter name="scope" value="session" regenerateElement="false"></parameter> <parameter name="className" value="com.asiainfo.boss.channel.channelbj.channelcomp2.webservice.busiinfo.IBusiInfoDeal" regenerateElement="false"></parameter> <parameter name="allowedMethods" value="*" regenerateElement="false"></parameter> </service> <!-- 本文示例接口 --> <service name="EsopWBService1" provider="java:RPC"> <parameter name="scope" value="session" ></parameter> <parameter name="className" value="com.asiainfo.boss.channel.channelservices.EsopWBService1" ></parameter> <parameter name="allowedMethods" value="*" ></parameter> <beanMapping languageSpecificType="java:com.asiainfo.boss.channel.channelservices.EsopResult1" qname="ccs:EsopResult1" xmlns:ccs="urn:EsopWBService1" /> <beanMapping languageSpecificType="java:com.asiainfo.boss.channel.channelservices.MenuNodeInterface" qname="ccs:MenuNodeInterface" xmlns:ccs="urn:EsopWBService1" /> </service> </deployment>
注:大家可能看到该配置文件里的前两个服务采用的provider="java:AIRPC",而在axis-1_4\docs\apiDocs\index.html文档里的org.apache.axis.providers.java包下并没有个叫AIRPC的,这个不用管,因为这个是公司扩展的providers,主要是取service方便,按照公司自己的框架取service方式来取。大家看最后的示例接口,都采用provider="java:RPC"即可。自己跑示例将java:AIRPC的service都删除即可。
另外该文件要放在你的web应用的WEB-INF目录下,例如:WEB-INF\server-config.wsdd
5:启动你的servlet容器,然后跑EsopWBClient1类看结果
OK,附件是相关代码,配置文件和文档,还有就是参看axis1.4的doc和apiDoc以及examples
另外以下是参考链接
http://log-cd.iteye.com/blog/469491
http://chenjumin.iteye.com/blog/240206
http://watching2008.iteye.com/blog/406102
http://topic.csdn.net/u/20080121/16/EE41AF56-CB1D-499E-8F4E-2BED110A74AA.html 我是看了这个才想到要在客户端代码里addParameter的
http://www.pusuo.net/2010-09-26/111294895.html
http://group.gimoo.net/review/116408
服务测试路径,我的是http://localhost:8091/bjchannel/services/EsopWBService1
wsdl是http://localhost:8091/bjchannel/services/EsopWBService1?wsdl
大家自己看情况修改吧,路径中的“services”是你的web.xml里axisServlet对应的urlMapping,你改成别的也行
- axis1.4示例代码.rar (3.3 KB)
- 下载次数: 177
- Web_Service开发指南_2.3.1.pdf (1.1 MB)
- 下载次数: 274
发表评论
-
【Java TCP/IP Soket】— 消息边界的问题解决
2015-08-11 09:47 1456转自:http://blog.csdn.net/ ... -
java中volatile解释
2015-05-28 16:28 723http://www.cnblogs.com/aigongs ... -
Java中的substring真的会引起内存泄露么?
2015-05-27 13:18 957转: http://droidyue.com/blog/ ... -
成为Java GC专家(4)—Apache的MaxClients参数详解及其在Tomcat执行FullGC时的影响
2015-05-27 12:24 632转:http://www.importnew.com ... -
成为Java GC专家(3)—如何优化Java垃圾回收机制
2015-05-27 12:23 796转:http://www.importnew.com ... -
成为JavaGC专家(2)—如何监控Java垃圾回收机制
2015-05-27 12:20 652转:http://www.importnew.com ... -
成为JavaGC专家(1)—深入浅出Java垃圾回收机制
2015-05-27 12:16 515转:http://www.importnew.com ... -
《深入分析Java Web技术内幕》-样章示图总结
2013-01-17 11:46 1324试读完本书的样章章节后,感受颇深,其实单从样 ... -
eclipse中(装了插件m2eclipse后的)导入maven工程显示"感叹号"
2013-01-15 16:02 7385有时候导入一些开源工程(maven结构的),在 ... -
(转)分析模式 之 参与者(Party)
2012-10-22 16:39 961在我们分析模型的时 ... -
(转)java.sql.SQLException: (无法从套接字获取更多数据)数据大小超出此类型的最大值
2012-10-22 16:38 5525转至:http://linwei-211.i ... -
有关hashmap,hashset的相关总结
2011-09-16 17:32 3052这篇转自http://hi.baidu.com ... -
有关JAVA异常和错误(ERROR)的处理
2011-09-15 20:41 19177最近遇到有关ERROR的处理问题,下面这篇文章 转至: ... -
XFire 、Axis2、CXF、JWS、java6 区别 (转)
2011-06-13 22:50 1924XFire VS AxisXFire是与Axis2 并列的 ... -
转载[Connection reset,Connection reset by peer,Software caused connection abort :]
2011-06-08 13:16 9994Connection reset,Connection ... -
java实现一个栈,并提供取该栈中最大数的方法,复杂度O(1)
2011-06-07 15:18 2162记得是哪个面试题里的,这里只想到一个简单的方法,大家看看 ... -
Listener Servlet和filter的应用
2011-05-16 22:21 890下面这段话是小总结: Listener是Ser ... -
转载【有关JSP中的转发和重定向用法】
2011-05-15 19:05 1756转自: http://blog.csdn.net/cyhjr ... -
转载【Java对象的强、软、弱和虚引用】
2011-05-13 22:47 8941.Java对象的强、软、弱和虚引用 在JDK 1.2以 ... -
有关JNDI的理解
2011-04-14 11:22 972JAVA EE规范里的jndi是为了解决下面两个问题: ...
相关推荐
"docs"文件夹可能包含了详细的API参考、教程和示例,对于理解并利用Axis1.4的各项功能非常有帮助。通过深入学习和实践,开发者可以充分利用Axis1.4的强大功能,创建高效、可靠的Web服务解决方案。
总结起来,将Spring Boot与Axis1.4结合使用,可以方便地在Spring Boot应用中构建和发布Web服务,利用Spring Boot的便利性和Axis1.4的强大功能。通过理解并熟练掌握上述步骤,你可以在实际项目中灵活地部署和管理Web...
【标题】"axis1.4 上传数据示例"是一个基于Axis1.4框架的Web服务客户端和服务器端实现,用于演示如何通过编程方式上传数据。Axis1.4是Apache组织开发的一个开源SOAP(简单对象访问协议)工具包,它允许开发者创建、...
3. **示例和服务**:可能包含一些示例服务和配置文件,帮助用户快速理解和启动服务。 4. **配置文件**:如axis2.xml,这是Axis2的全局配置文件,定义了服务的默认行为和运行时参数。 5. **工具和脚本**:可能包括...
在本示例中,"Springboot,axis1.4的demo" 提供了一个具体的案例,展示了如何在 SpringBoot 项目中集成 Axis1.4,这是一个古老的但仍然广泛使用的 SOAP Web 服务框架。SOAP(简单对象访问协议)是一种用于交换结构化...
标题 "axis1.4带lib包java开发webservice客户端和服务端" 涉及到的是一个基于Java的Web服务开发工具包,Axis1.4,它包含必要的库文件(lib)来支持创建和消费Web服务。这个压缩包是为MyEclipse集成开发环境设计的,...
标题“axis1.4.rar”指的是Axis 1.4版本的软件包,它是一个流行的开源Java框架...总的来说,`axis1.4.rar`文件为Java开发者提供了在WSL基础上构建和消费Web服务的能力,简化了开发流程,促进了跨平台的分布式系统集成。
在Eclipse JEE 3.3版本中,开发Web Service和客户端程序变得相对简单,因为该版本已经集成了Axis1.4插件,无需额外安装。 Axis是一个开放源码的Web Service框架,它允许开发者快速地创建和部署Web Service。 1. **...
标题“axis 1.4 src”表明我们正在讨论的是Axis 1.4版本的源代码。...通过分析源代码和运行示例应用,开发者可以深入理解Web服务客户端的实现细节,以及如何利用Java的XML和SOAP技术进行跨平台的数据交换。
9. **与Apache Tomcat等应用服务器集成**:Axis可以无缝集成到Tomcat、Jetty等流行的Java应用服务器中。 10. **社区支持**:作为Apache项目,Axis拥有活跃的社区,提供文档、示例、论坛讨论和问题跟踪等资源。 总的...
了解这些基本信息后,开发者可以进一步深入研究Axis1.4的高级特性,如消息处理模型、模块化架构、WS-*规范的支持(如WS-Security、WS-Addressing等)以及与其他Java EE组件(如EJB、JMS)的集成。此外,还可以探索...
综上所述,Axis 1.4开发指南覆盖了从安装配置到实际应用开发等多个方面,为开发者提供了全面而深入的技术指导。无论是对于初学者还是有经验的开发者来说,都是一份非常有价值的参考资料。希望本文能够帮助读者更好地...
标题中的“整合axis-bin1.4+activation.jar+mail.jar.zip”表明这是一个关于 Axis1.4 Web服务框架的集成包,包含了Axis运行时所需的activation.jar和mail.jar两个关键的Java库。Axis是Apache软件基金会开发的一个...
- Axis 1.4 文档通常包含一些简单的示例,如 "Helloworld" 示例,帮助初学者快速理解如何创建和调用 Web 服务。 7. **社区和文档** - 开源性质使得 Axis 拥有丰富的社区资源,包括在线论坛、邮件列表和教程,为...
标题“wsdaix-1.1-axis-1.4-bin”揭示了这是一个关于WS-DAI(Web Services Distributed Access Interface)的软件包,版本为1.1,与Apache Axis 1.4集成。Apache Axis是Java平台上的一个开源SOAP(简单对象访问协议...
Axis 可以轻松地与各种Java应用服务器集成,如Tomcat、JBoss、WebLogic等,也可以独立运行。通过Servlet容器,它可以处理HTTP请求并提供Web服务。 7. **学习资源**: 对于想要深入学习Axis 1.4的开发者,可以查阅...
通过"AXIS2_1.4.ZIP"压缩包,你可以获取到Axis2 1.4版本的完整实现,包括运行库、示例、文档和必要的配置文件,从而快速搭建和管理你的Web服务环境。这个版本虽然较旧,但是对于学习Web服务基础概念和了解Axis2架构...
【Axis 服务端/客户端 样例】是一个用于学习和实践Axis框架的示例资源包。Axis是一个开源的Web服务工具包,它主要用于构建和部署基于SOAP(简单对象访问协议)的Web服务。这个资源包涵盖了 Axis 1.4 的完整二进制...
通过学习和实践这个AXIS1.4发布Web服务的例子,开发者不仅可以了解Web服务的基本原理,还能掌握AXIS工具的使用,这对于从事分布式系统开发和企业级应用集成工作是非常有益的。不过,需要注意的是,随着技术的发展,...