eclipse中AXIS2发布过程
Axis2服务端研究好几个小时,终于解决了
需要下载:
地址1:
可以从镜像站下载: 上海大学开源镜像站
地址2:
链接:从百度网盘下载;
密码:8nwu
其中第二个可以不用下;
解压后
将3,4解压后的jar放到D:\eclipse\plugins,也就是安装目录的PLUGINS文件夹下;
在eclipse里面设置axis2运行时环境:
Windows-preferences-web services-axis2 preferences-axis2 runtime:
选择路径后确定
然后在eclipse里面新建一个dynamic web project;(我这里是XA)写你的用于服务的java类,如图:
此方法就是传4个参数,然后返回一个xml格式字符串;
然后建立webservice:
右键左边项目资源浏览器里面的刚才新建的服务类:SyncData.java,-web service-create webservice;
注意将configuration中第二项改成 axis2;然后一路下去生成webservice;
此时左侧项目自动生成相应文件如下图:
可以看到生成了很多新的文件;
打开WEB-INF的lib,发现里面自动导入了很多jar包,但这里缺少一个(可能是eclipse版本的问题)需要手动导入;
打开F:\java库\axis2-1.7.7\axis2-1.7.7-bin\axis2-1.7.7(文章开头下载后的解压路径),
打开lib,复制里面的xmlschema-core-2.2.1.jar这个jar包到eclipse里面左侧XA项目中的WEB-INF/lib;(重要);
并且删除项目lib中的XmlSchema-1.4.7.jar(相当于用xmlschema-core-2.2.1.jar替换掉XmlSchema-1.4.7.jar)
Jar包导入后,现在修改:
双击项目中的services.xml:
Please Type your service description here
上方是原内容,注意红色字,现在修改为:
Please Type your service description here
至此,修改完毕;webservice服务端可正确发布;
通过spring配置数据源时必看:
如果提示报错找不到javax/ws/rs/Produces ;
复制F:\java库\axis2-1.7.7\axis2-1.7.7-bin\axis2-1.7.7中的jsr311-api-1.1.1.jar到项目lib中;
在webservice的类中取得spring的bean:
此方法并没有将AXIAS2集成到spring中,在webservice服务类中无法通过Autowired来装载spring的bean,必须通过spring的xml配置文件来查找自动状态的bean;
public static ApplicationContext ac=new ClassPathXmlApplicationContext(new String[]{"/applicationContext.xml"});
public ABSDao absDao = (ABSDao) ac.getBean(ABSDao.class);
第一行取得ApplicationContext,第二行通过ApplicationContext来取得需要的bean,注意,这个bean没有直接配置在xml文件中,而是通过自动扫描对应包的方式配置到xml中的,因此,这个bean没有name,id等属性,所以这里只能通过xxx.class的方式来getbean