spring+springmvc基于axis1.4的webservice开发与https配置(二)

(二)axis环境的配置

(1)pom.xml依赖配置

<!-- webservice-axis -->
<dependency>
   <groupId>commons-discovery</groupId>
   <artifactId>commons-discovery</artifactId>
   <version>0.5</version>
</dependency>

<dependency>
   <groupId>org.apache.axis</groupId>
   <artifactId>axis</artifactId>
   <version>1.4</version>
</dependency>
<dependency>
   <groupId>org.apache.axis</groupId>
   <artifactId>axis-jaxrpc</artifactId>
   <version>1.4</version>
</dependency>
<dependency>
   <groupId>axis</groupId>
   <artifactId>axis-wsdl4j</artifactId>
   <version>1.5.1</version>
</dependency>

(2)web.xml的配置(访问路径)

<!--axis相关配置 -->
     <servlet>  
        <servlet-name>AxisServlet</servlet-name>  
        <servlet-class>  
            org.apache.axis.transport.http.AxisServlet  
        </servlet-class>  
    </servlet>  
      
    <servlet-mapping>  
        <servlet-name>AxisServlet</servlet-name>  
        <url-pattern>/services/*</url-pattern>  
    </servlet-mapping>

(3)wsdd的编写

在WEB-INF下新建server-config.wsdd文件

<deployment xmlns="http://xml.apache.org/axis/wsdd/"  
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
     <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>  

<!--名称空间,一般是包名反写,以及暴露出的service名称为xxx,此处名为Validate,可以随自己的想法指定--!>
       <wsdl targetNamespace="xxxxx" ></wsdl>
     <service name="Validate" provider="java:RPC"> 

<!--接口的类的完整路径--!> 
       <parameter name="className" value="xxxxxx"/>  

<!--*代表默认暴露所有方法--!> 
  
       <parameter name="allowedMethods" value="*"/>    
   
     </service>   
      <transport name="http">  
       <requestFlow>  
          <handler type="URLMapper"/>  
       </requestFlow>  
     </transport>  
</deployment>

(4)服务端的编写

一个接口类,一个接口实现类

接口类可以定义需要暴露的方法.具体方法实现由接口实现类做.

接口实现类需要继承 ServletEndpointSupport类,其中可以@Override的方法有onInit() 方法,表示请求时会先加载的方法.

 

(5)客户端的调用代码

public class TestClient {

public static void main(String[] args) throws Exception {
      
            try {
        String ret=null;

//需要调用的方法名,在服务端代码定义的
        String Operation="getDate";

//需要暴露的wsdl地址,若启用ssl加密则是https协议,若无则是http协议,Validate是在wsdd文件中指定的service名称,
        String endPoint="http://localhost/xxx/services/Validate?wsdl";

//在wsdd中指定的名称空间
        String targetNameSpace="https://impl.interfaces.service.com";

//使用call的方式调用
        Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endPoint));
call.setOperationName((new QName(targetNameSpace, Operation)));
ret=(String) call.invoke(Operation, null);
//返回方法调用的结果
System.out.println(ret);

} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
        }
        }

}

}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shaguatao/article/details/52223255
文章标签: web service
个人分类: 后台框架
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭