在网上看了很多优秀的或者说是基本一致单一的一种发布webservice的方法是stub,但是我是个新手,尽管好不容易配通了一次,但是还是没有掌握要领,本来就是为了能够作为一个webservice项目发布,偏偏弄得那么难,不知道浪费了自己多少金子般的时间啊(现在真想痛哭一场!)只怪自己不够仔细认真,后来发现axis中自带一个测试用的项目,于是就在此基础之上搭建了一个webservice项目,仅仅用了几分钟就够了。这在项目中是很方便的啊。各位同僚,真不知道你们用stub的方式是为了什么,可能你不用eclipse等的ide,但是俺用啊,你们那么整把俺也整惨了,俺的时间啊!因此写下这篇日志,当是对自己一个提醒吧 !也希望那些刚刚涉入axis模式的webservice同僚能节省自己的宝贵时间,快速的发布webservice服务!
首先,跟任何一种发布方式一样就是环境的配置,把下下来axis包中的那个测试项目/axis-src-1_4/axis-1_4/webapps路径下的axis文件夹下的WEB-INF/lib中的所有的包都拷到你的项目中,然后看看axis文件夹下的WEB-INF/下的web.xml文件中的配置,把里面的欢迎页面和session时间配置项去掉之后就是有用的servlet&servlet-mapping的配置了,把这些都原封不动的拷到你的项目文件web.xml中,然后还要在你项目中的WEB-INF/下建立server-config.wsdd文件,这个文件的主要用途是发布你自己的service方法,否则你就没地方发布啦,是不是啊?
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="adminPassword" value="admin"/>
<parameter name="attachments.Directory" value="./attachments"/>
<parameter name="attachments.implementation"
value="org.apache.axis.attachments.AttachmentsImpl"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="sendXMLDeclaration" value="true"/>
<parameter name="axis.sendMinimizedElements" value="true"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
</requestFlow>
</globalConfiguration>
<handler name="LocalResponder"
type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="URLMapper"
type="java:org.apache.axis.handlers.http.URLMapper"/>
<handler name="Authenticate"
type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<service name="myService" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="webservices.WebService"/>
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
</transport>
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>
</deployment>
亮色显示部分是自己的项目中发布的service类,大家都能看懂什么意思吧??
然后你就发布自己的项目,启动tomcat吧,然后在你的浏览器里输入http://127.0.0.1:8080/testWebService2/services(其中testWebService2是我的项目名称),你就看到自己发布的服务啦!!!哈哈,真是比那个stub好多了,那还要写bat,这个直接发布就可以,真不知道那些人是怎么想的,不管怎么样,还是应该谢谢各位仁兄啊!!!