自己的印象中,Axis应该算是主流的Web Service框架吧,开发起来很简单、方便,不错的选择... ...
将Axis中的WEB APP拷贝到一个Server容器中,就可以使用Axis发布Web Services了,是不是很方便啊?
可以将WEB APP看着一个载体、平台。
第一步:配置Axis App应用
1、拷贝${AXIS_HOME}/webapps/axis 到 ${TOMCAT_HOME}/webapps 目录
2、启动Tomcat
3、浏览器输入:http://localhost:10000/axis
如果没有报任何异常错误,则表示,你的Aixs应用已经搭建好了!!!
第二步:开发一个快速自己发布的Web Service
1、编写一个业务类
这种方式开发的Web Service不支持包名(package) + 继承(extends) + 实现(implements)
public class SayHello{ private String name; public String hello(){ return "Hello, axis Ver1.4 talking to you."; } }
2、将开发的Java文件修改后缀名:java -> jws
3、拷贝开发的jws文件到${TOMCAT_HOME}/webapps/axis目录下
4、浏览器输入:http://localhost/axis/SayHello.jws 即可访问开发的Web Service
5、点击WSDL,可以查看自动生成的WSDL文件内容
第三步:使用配置的形式开发Web Service(WSDD)
1、编写业务类,支持包名
编译之后,放置在${TOMCAT_HOME}/webapps/axis/WEB-INF/classes目录
package wei.peng; public class SayHello{ private String name; public String hello(){ return "Hello Wei, axis Ver1.4 talking to you."; } }
2、编写配置文件server-config.xml文件
放置在${TOMCAT_HOME}/webapps/axis/WEB-INF目录
<?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="defaultClientConfig"> <requestFlow name="RequestFlow1" type=""> <handler name="Handler1" type="java:org.apache.axis.handlers.JWSHandler"> <parameter name="scope" value="session"/> </handler> <handler name="Handler2" type="java:org.apache.axis.handlers.JWSHandler"> <parameter name="scope" value="request"/> <parameter name="extension" value=".jwr"/> </handler> </requestFlow> </globalConfiguration> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/> <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/> <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/> <transport name="http" type=""> <requestFlow name="RequestFlow1" type=""> <handler name="Handler1" type="URLMapper"/> <handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> </requestFlow> </transport> <transport name="local" type=""> <responseFlow name="ResponseFlow1" type=""> <handler name="Handler1" type="LocalResponder"/> </responseFlow> </transport> <!--这里配置了一个Web Service,如果有多个Web Service,就按这个格式在下面增加即可--> <service name="SayHelloToWei" provider="java:RPC"> <parameter name="scope" value="Request"/> <parameter name="className" value="wei.peng.SayHello"/> <parameter name="allowedMethods" value="*"/> </service> </deployment>
3、重启Tomcat,就可以看到配置的Web Service;URL = http://localhost/axis/servlet/AxisServlet
解析配置文件的Excption
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence.主要原因是配置文件中声明的编码与配置文件本身保存时的编码不一致