AXIS实现web服务配置部署简要流程

 

AXIS实现web服务配置部署简要流程

1:编写服务器端接口,并在<webapp>/WEB-INF/classes下编译。

       javac –d . *.java

 

 

 

 

2:在%APP_HOME%/webapp/WEB-INF目录下创建server-config.wsddAXIS配置文件,所有web服务都要在该文件中注册)文件。形如:

<?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.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="login" provider="java:RPC">  

                    <!-- 服务类名 -->     

                    <parameter name="className" value="com.test.service.loginService"/>  

                    <!-- 允许访问所有方法 -->  

                    <parameter name="allowedMethods" value="*"/> 

          </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>

 

 

 

 

注:server-config.wsdd文件也可以通过编写deploy.wsdd文件生成,具体方法为,在%APP_HOME%/webapp/WEB-INF目录下创建deploy.wsdd文件(SOAP发布描述文件),形如:

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <service name="login" provider="java:RPC">
        <parameter name="className" value="LoginService"/>

        <parameter name="allowedMethods" value="*"/>
    </service>
</deployment>

然后将相应服务器端class编译后在命令行输入:

java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd

将在当前目录下生成server-config.wsdd文件。

 

 

 

 

完成以上操作后,可在浏览器中通过http://localhost:8080/axis/services/login?wsdl 访问该服务。

 

 

 

 

3JAVA客户端实现:

可以通过AXIS中的org.apache.axis.wsdl.WSDL2Java类将已发布的web服务进行客户端实例化,具体命令为:在%APP_HOME%/webapp/WEB-INF目录下命令行输入:

Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java url[YiWang1] 

 

 

 

 

命令执行后会在本地当前目录下生成以url为模版的package目录层次结构(如:local.axis.service.*),该目录中针对每个服务器端接口会自动生成4个本地类。

其中:

       inferface LoginService在客户端本地定义服务器接口的映射。

       interface LoginServiceService定义了用于获得web服务的getter方法。

       class LoginServiceServiceLocator具体实现LoginServiceService接口,保存了服务器的url等相关信息。

       class LoginSoapBindingStub 具体实现LoginService,负责服务器交互。

 

 

 

 

(部署了web服务之后,如果接口不变而url发生改变,可以直接在客户端更新LoginServiceServiceLocator中有关服务器地址的相关信息,或者用配置文件的形式修改)

编译以上几个类时需要axis.jarjaxrpc.jar两个包,命令为:

  javac -classpath lib/axis.jar;lib/jaxrpc.jar –d . *.java

编译成class后可以通过jar命令打包作为接口部署在客户端。

 

 

 

 

客户端测试例程:

       如果通过java应用程序形式进行测试,命令为:

        java -Djava.ext.dirs=lib -cp . package.class


 [YiWang1]服务器通过Wsdl形式发布的web服务的完整url地址。


相关文章
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值