webService 从入门到精通,一起打包了

一、接口的初级写法

   可以直接用Eclipse建立一个项目。Flie--->New--->Other---->Dynamic Web Project(java普通项目也可以,我个人喜欢用web项目)

---->输入Project name 其他默认,点下一步就可以了----->在Default output folder输入WebContent\WEB-INF\classes--->项目创建结束。

2、开始编写接口方法(包和类文件创建完毕的情况下)

在编写的类的上方需要添加"@WebService"

 

webService 从入门到精通,一起打包了_第1张图片

然后是方法编写的部分:

注意:::这里的方法是提供给人调用的接口,必须要是public修饰。

最后是接口的发布:

运行结果:

注意这里图片中的右上方的小框不能点掉了,不然接下来的测试是看不到结果的!!!!

下面是看发布的成功生成的wsdl文件 在浏览器中输入发布的地址加“?wsdl”就可以了(我的--(http://localhost:8080/service/function?wsdl)--)

webService 从入门到精通,一起打包了_第2张图片

2、用这里查看wsdl文件的地址自动生成客户端

首先依照上面的说的步骤新建另一个项目

webService 从入门到精通,一起打包了_第3张图片

鼠标点中这个新的项目,然后在项目上点击右键 New-->Other-->选择Web Service Client 

webService 从入门到精通,一起打包了_第4张图片

直接点击下一步在Service definition中上面提到的地址复制到这里“http://localhost:8080/service/function?wsdl”直接点击Finish

webService 从入门到精通,一起打包了_第5张图片

生成的客户端代码:

webService 从入门到精通,一起打包了_第6张图片

这里将生成的test包删掉这里用不到

webService 从入门到精通,一起打包了_第7张图片

测试代码的编写

webService 从入门到精通,一起打包了_第8张图片

点击运行就可以等待结果了。(这里等待结果一般时间都会很长)

webService 从入门到精通,一起打包了_第9张图片

这就是初级的接口

 

二、利用Axis框架进行应用型接口的开发

Axis框架现在用的比较多的版本是Axis1.4   和     Axis2.0   版本的。首先我先聊聊2.0版本的,因为2.0版本简单,而且2.0版本的环境也使用与1.4版本。

1、下载Axis2

Axis下载地址:  http://ws.apache.org/axis2/

在本文使用了目前Axis2的最新版本1.6.4。读者可以下载如下两个zip包:   

   axis2-1..6.4-bin.zip     

   axis2-1.6.4-war.zip 

环境配置(前提Tomcat已经配置好了)解压axis2-1.6.4-war.zip  将目录中的axis2.war文件放到Tomcat服务器的webapps目录中(本文使用 的Tomcat的版本是7.x),并启动Tomcat。(不要偷懒用eclipse启动,因为我不但想过还干过。)

Tomcat启动需要用cmd命令启动

webService 从入门到精通,一起打包了_第10张图片

启动成功

webService 从入门到精通,一起打包了_第11张图片

在浏览器地址栏中输入如下的URL:     http://localhost:8080/axis2/ 

webService 从入门到精通,一起打包了_第12张图片

好了!环境配置好了。接下来需要创建一个java项目(本人创建的是JavaWeb项目),将下载的axis2-1..6.4-bin.zip  解压,将相应的jar包放到我们项目的WEB-INF/lib文件夹下

webService 从入门到精通,一起打包了_第13张图片

lib文件夹下

webService 从入门到精通,一起打包了_第14张图片

接下来在我们创建的web项目中需要做把配置项目文件建一下:

看图建文件“/WebContent/WEB-INF/services/conf/META-INF/services.xml”

(--在WEB-INF下创建services文件夹然后创建------conf----META-INF----services.xml--)

webService 从入门到精通,一起打包了_第15张图片

当然web.xml文件是不可少的。

这是services.xml中的内容


  
    测试axis2webservices
     
      
           com.thinkgem.jeesite.modules.caseinfo.TheThreeInterfaces.test     
      
   
      
          
       

http://localhost:8080/testaxis2webservice/services/Testservice?wsdl

注释:上面的路径是搭建好web项目后要运行的wsdl路径   
1: 指定服务名 =====就是要运行的wsdl路径的?和/之间的那一部分===可以说指定的服务名是wsdl路径的一部分

2:服务的作用说明====这个不用管===就相当于一个注释,说说你要发布的webservice是干啥的

3:指定要发布的类路径======就是你要把那个类做成webservice

4:类里面的方法,有其他方法就在写个operation标签=======配置你写的类里面的方法

 

这是web.xml中的内容:



  webservices
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
    AxisServlet
    org.apache.axis2.transport.http.AxisServlet
    1
  
  
    AxisServlet
    /services/*
  

现在在我们的项目中编写接口方法

webService 从入门到精通,一起打包了_第16张图片

编写完成启动项目:

webService 从入门到精通,一起打包了_第17张图片

路径的组成:tomcate里配置的ip和端口号 + 项目名 + web.xml里配置的 + service.xml里面指定的服务名

我的项目地址:http://localhost:8080/webservices/services/ThreeWS?wsdl

webService 从入门到精通,一起打包了_第18张图片

接下来生成客户端:可以按照初级教程的方法生成客户端

webService 从入门到精通,一起打包了_第19张图片

编写测试类:

package com.thinkgem.jeesite.modules.caseinfo.TheThreeInterfaces;

import java.rmi.RemoteException;

public class test {
	public static void main(String[] args) {
		ThreeWSPortTypeProxy proxy = new ThreeWSPortTypeProxy();
		String transWords="";
		try {
			transWords = proxy.transWords("work hard !!!!");
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(transWords);
	}

}

编写好测试类,然后直接测试就可以了

这个是Axis2的教程。

我在实际的开发过程中发现Axis2的环境可以在Axis1.4 中使用。

先看我的开发中Axis项目的文件结构(在进行开发的时候需要将axis-bin-1_4.zip中的jar引入到项目中)

webService 从入门到精通,一起打包了_第20张图片

这里的只有两个核心类只有ThreeWS和ThreeImpl文件

代码

/*
 * @(#) Three.java 2016年12月27日
 *
 * Copyright (c) 2016, SIMPO Technology. All Rights Reserved. SIMPO Technology. CONFIDENTIAL
 */
package com.thinkgem.jeesite.modules.caseinfo.TheThreeInterfaces;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.parsers.ParserConfigurationException;

/**
 * @author SandRomance
 * @version 1.0
 * @since 2016年12月27日
 */
@WebService(name ="ThreeWS")
public interface ThreeWS {

    //获取调解员信息
    @WebMethod
    public String getMediators(String arg1,String arg2) throws ParserConfigurationException;

    //保存案件信息
    @WebMethod
    public String saveMediation(String arg1,String arg2) throws ParserConfigurationException;




}

ThreeImpl的ThreeWS接口实现代码:

/*
 * @(#) ThreeImpl.java 2018年7月17日
 *
 * Copyright (c) 2018, SIMPO Technology. All Rights Reserved. SIMPO Technology. CONFIDENTIAL
 */
package com.thinkgem.jeesite.modules.caseinfo.TheThreeInterfaces;

import org.apache.commons.codec.binary.Base64;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.parsers.ParserConfigurationException;

import java.sql.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date;

/**
 * @ClassName: ThreeImpl
 * @Description: 力宇接口
 * @author SandRomance
 * @date 2018年7月18日 上午10:05:31
 */
@WebService(endpointInterface = "com.thinkgem.jeesite.modules.caseinfo.TheThreeInterfaces.ThreeWS")
public class ThreeImpl implements ThreeWS {

	@Override
	public String getMediators(String arg1, String arg2) throws ParserConfigurationException {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String saveMediation(String arg1, String arg2) throws ParserConfigurationException {
		// TODO Auto-generated method stub
		return null;
	}}

 下面编写配置文件

先看一下文件结构

webService 从入门到精通,一起打包了_第21张图片

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

内容:



  
    
    
    

    
    
    
    
    
    
      
        
      
      
        
        
      
    
  

  
  
  

  
  
  
    
    
    
    

  

  
    
    
    
    
 
  
    
      
      

      
      
    
    
      
      
    
    
    
    
    
    
    
  
  
    
      
    
  

web.xml的内容



  my
  
    index.jsp
  
  
  
    Apache-Axis Servlet
    AxisServlet
    org.apache.axis.transport.http.AxisServlet
  
  
    Axis Admin Servlet
    AdminServlet
    org.apache.axis.transport.http.AdminServlet
    100
  
  
    SOAPMonitorService
    SOAPMonitorService
    org.apache.axis.monitor.SOAPMonitorService
    
      SOAPMonitorPort
      5101
    
    100
  
  
    AxisServlet
    /servlet/AxisServlet
  
  
    AxisServlet
    *.jws
  
  
    AxisServlet
    /services/*
  
  
    SOAPMonitorService
    /SOAPMonitor
  
  
    AdminServlet
    /servlet/AdminServlet
  
  
    wsdl
    text/xml
  

用tomcat运行项目 并访问wsdl文件(“http://localhost:8080/my/services/ThreeWS?wsdl”): 

webService 从入门到精通,一起打包了_第22张图片

下面按照上面的方法生成客户端,测试就可以了。两种版本不一样,不能互相访问,可能生成策略不一样。所以需要注意!

 

 

 

 

 

 

 

你可能感兴趣的:(webservice)