美文网首页
webservice

webservice

作者: 水石间 | 来源:发表于2019-03-24 21:03 被阅读0次
    1. 在Spring中,可以将某个类以webservice方式暴漏出来:
      https://blog.csdn.net/zdwzzu2006/article/details/7443367

    2. 项目中有现成的xml和Bean互转的工具类: jaxbUtils

    3. wsdd文件注释:

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 告诉Axis Engine这是一个部署描述文件。一个部署描述文件可以表示一个完整的engine配置或者将要部署到一个活动active的一部分组件。 -->
    <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
     
        <!-- 用于控制engine范围的配置。会包含一些参数 -->
        <globalConfiguration>
            <!-- 用来设置Axis的各种属性,参考Global Axis Configuration,可以配置任意数量的参数元素 -->
            <parameter name="adminPassword" value="admin" />
            <!-- 设置一个SOAP actor/role URI,engine可以对它进行识别。这允许指向这个role的SOAP headers成功的被engine处理 -->
            <role/>
            <!-- 全局的请求Handlers。在调用实际的服务之前调用 -->
            <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>
            <!-- 全局响应Handlers,在调用完实际的服务后,还没有返回到客户端之前调用 -->
            <responseFlow/>
        </globalConfiguration>
     
        <!-- 用于定义Handler,并定义handler的类型。"Type" 可以是已经定义的Handler或者是"java:class.name"形式的QName。可选的"name"属性允许将这个Handler的定义在其他部署描述部分中引用。可以包含任意数量的<parameter name="name" value="value">元素. -->
        <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" />
        
        <!-- 部署/卸载一个Axis服务,这是最复杂的一个WSDD标签。 -->
        <service name="AdminService" provider="java:MSG">
            <!-- allowedMethods: 每个provider可以决定那些方法允许web services访问,指定一个以空格分隔的方法名,只有这些方法可以通过web service访问。也可以将这个值指定为”*”表示所有的方法都可以访问。同时operation元素用来更进一步的定义被提供的方法,但是它不能决定方法的可见性 -->
            <parameter name="allowedMethods" value="AdminService" />
            <parameter name="enableRemoteAdmin" value="false" />
            <!--className:后台实现类,即暴露接口的类-->
            <parameter name="className" value="org.apache.axis.utils.Admin" />
            <namespace>http://xml.apache.org/axis/wsdd/</namespace>
        </service>
     
        <!-- provider="java:RPC"  默认情况下所有的public方法都可以web service方式提供-->
        <service name="TestService" provider="java:RPC">
            <parameter name="allowedMethed" value="sayHello"/>
            <parameter name="scope" value="Request"/>
            <parameter name="className"
                value="adam.bp.workflow.webservice.test.WebServicesTest"/>
        </service>
        
        <!-- 定义了一个服务器端的传输。当一个输入请求到达的时候,服务器传输被调用 -->
        <transport name="http">
            <!-- 指定handlers/chains 在请求被处理的时候被调用,这个功能和service元素中的功能一样。典型的传输请求响应handler实现了关于传输的功能。例如转换协议headers等等 -->
            <requestFlow>
                <handler type="URLMapper" />
                <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />
            </requestFlow>
        </transport>
     
        <transport name="local">
            <!-- 指定handlers/chains 在响应被处理的时候被调用,这个功能和service元素中的功能一样。典型的传输请求响应handler实现了关于传输的功能。例如转换协议headers等等 -->
            <responseFlow>
                <handler type="LocalResponder" />
            </responseFlow>
        </transport>
     
    </deployment>
    
    

    引自:https://blog.csdn.net/u011063151/article/details/52590282
    http://www.cnblogs.com/ywx-vashon/p/5452893.html

    相关文章

      网友评论

          本文标题:webservice

          本文链接:https://www.haomeiwen.com/subject/qlwuvqtx.html