http://juleven.blogdriver.com/juleven/681942.html
在很久很久以前写了一篇《在Axis中用Spring发布Web Services》,鲁莽的提出一个“用Axis可能不能享受Spring带来的好处”的结论,一直觉得自己可能太草率了。
最近有时间重新看了些资料,证明了自己确实错了。
这里是比较有特点的两篇参考:
星月夜的http://starrynight.blogdriver.com/starrynight/425172.html
Wry Tradesman的http://www.wrytradesman.com/blog/archives/000030.html
这两篇文章说明了两种解决思路:星月夜的解决方法是修改Axis的jar文件,添加真对Spring的provider;Wry Tradesman的解决方法是在发布出的方法中,直接通过Axis的contextAxis得到Spring的contextSpring,进一步得到其中的bean。
其实这两种方法有共同的地方,那就是都需要从Axis的contextAxis得到Spring的contextSpring,只要得到Spring的context也就能利用Spring带来的好处了。具体方法就是下面这两行代码了
HttpServlet servlet = (HttpServlet) MessageContext.getCurrentContext().getProperty(HTTPConstants.MC_HTTP_SERVLET);
ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servlet.getServletContext());
个人比较倾向于Wry Tradesman的解决方法,原因是,星月夜的解决要修改Axis的jar文件。
修改别人代码的事情我一向不怎么感兴趣,尤其是对发布出来的jar包,当然做项目的时候肯定会遇到修改其他人代码的情况,不过那没办法。
这些jar包,既然发布出来了,那就肯定不光你一个人在用,这里修改一下这个,那里修改一下那个,这么下去大家迟早会失去共同讨论的基础。
出了问题其他人就不知道怎么帮你解决了,因为你用的jar包和别人的不一样。
在spring中使用axis
http://www.wrytradesman.com/blog/archives/000030.html
还有一个新的xfire,也是java中用来开发web services的。
http://xfire.codehaus.org/Download
http://www-128.ibm.com/developerworks/cn/webservices/ws-deepaxis/index.html