Tomcat手动发布WebService —— axis2

  1. 准备工作。先去官网下载axis2-1.6.2-bin.zip,axis2-1.6.2-war.zip这两个包,解压axis2-1.6.2-bin.zip包到一个目录(我的是C盘),设置环境变量AXIS2_HOME=C:\axis2-1.6.2,这个步骤和设置JDK一样,就不说了。解压axis2-1.6.2-war.zip得到war包axis2.war,放在tomcat的里运行,访问地址是http://localhost:8080/axis2/,成功页面如下:

     项目axis2的目录结构如下: 
  2. axis2-web
    META-INF
    WEB-INF
        classes 
        conf
            axis2.xml 
        lib
            activation.jar
            ...
            xmlSchema.jar
        modules
            modules.list 
            addressing.mar
            ...
            soapmonitor.mar
        services
            services.list
            aservice.aar
            ...
            version.aar
        web.xml
  3. 有多种发布方法。第一种方法:直接发布类文件(.class)。缺点是此类文件中不能有包路径,否则发布出错,下面来发布以下这个类,
    import java.util.Random;
    
    /**
     * 
     * @author yanqh
     * @since 2013-7-29
     * 
     */
    public class HelloWorldService {
    
    	public String sayHello(String name) {
    		return name + " say: hello [axis2]";
    	}
    	
    	public int getAge(int i) {
    		return i + new Random().nextInt(100);
    	}
    }
     。在项目axis2的WEB-INF下新建文件夹pojo,把HelloWorldService.class放在pojo里就OK了。插话{ 为什么要用pojo文件夹呢?查看项目WEB-INF\conf下的axis2.xml文件中有这么一句
    <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
     }。点击项目主页的Services链接来查看发布的Service,如下:
  4.  使用地址http://localhost:8080/axis2/services/HelloWorldService/sayHello?name=yanqh来访问HelloWorldService中的sayHello方法,

    插话{网上看到可以直接发布jar包,这样就可以在类文件中有包路径,我没试过就不在这里写了}
  5. 第二种方法:打aar包进行发布。下面来发布以下这个类,
    package samples.quickstart.service.pojo;
    
    import java.util.HashMap;
    
    public class StockQuoteService {
        private HashMap map = new HashMap();
    
        public double getPrice(String symbol) {
            Double price = (Double) map.get(symbol);
            if(price != null){
                return price.doubleValue();
            }
            return 42.00;
        }
    
        public void update(String symbol, double price) {
            map.put(symbol, new Double(price));
        }
    }
     新建services.xml,
    <?xml version="1.0" encoding="UTF-8"?>
    <service name="StockQuoteService" scope="application">
        <description>
            Stock Quote Sample Service
        </description>
        <messageReceivers>
            <messageReceiver 
                mep="http://www.w3.org/2004/08/wsdl/in-only"
        class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
            <messageReceiver
                mep="http://www.w3.org/2004/08/wsdl/in-out"
        class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
        </messageReceivers>
        <parameter name="ServiceClass">
            samples.quickstart.service.pojo.StockQuoteService
        </parameter>
    </service>
     然后构建以下目录结构,
     - StockQuoteService  //这个文件夹名字是任意的
       - META-INF
         - services.xml
       - lib
       - samples
         - quickstart
           - service
             - pojo
               - StockQuoteService.class
       - StockQuoteService.wsdl  //在第6步生成的
  6. 打开命令行,执行以下命令

     之后StockQuoteService目录下生成了StockQuoteService.wsdl文件,再执行以下命令

     之后StockQuoteService目录下生成了StockQuoteService.aar包,把aar包放到项目axis2\WEB-INF\services中,然后再看Services列表


资源下载链接为: https://pan.quark.cn/s/3d8e22c21839 随着 Web UI 框架(如 EasyUI、JqueryUI、Ext、DWZ 等)的不断发展与成熟,系统界面的统一化设计逐渐成为可能,同时代码生成器也能够生成符合统一规范的界面。在这种背景下,“代码生成 + 手工合并”的半智能开发模式正逐渐成为新的开发趋势。通过代码生成器,单表数据模型以及一对多数据模型的增删改查功能可以被直接生成并投入使用,这能够有效节省大约 80% 的开发工作量,从而显著提升开发效率。 JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台。它引领了一种全新的开发模式,即从在线编码(Online Coding)到代码生成器生成代码,再到手工合并(Merge)的智能开发流程。该平台能够帮助开发者解决 Java 项目中大约 90% 的重复性工作,让开发者可以将更多的精力集中在业务逻辑的实现上。它不仅能够快速提高开发效率,帮助公司节省大量的人力成本,同时也保持了开发的灵活性。 JEECG 的核心宗旨是:对于简单的功能,可以通过在线编码配置来实现;对于复杂的功能,则利用代码生成器生成代码后,再进行手工合并;对于复杂的流程业务,采用表单自定义的方式进行处理,而业务流程则通过工作流来实现,并且可以扩展出任务接口,供开发者编写具体的业务逻辑。通过这种方式,JEECG 实现了流程任务节点和任务接口的灵活配置,既保证了开发的高效性,又兼顾了项目的灵活性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值