可以直接用Eclipse建立一个项目。Flie--->New--->Other---->Dynamic Web Project(java普通项目也可以,我个人喜欢用web项目)
---->输入Project name 其他默认,点下一步就可以了----->在Default output folder输入WebContent\WEB-INF\classes--->项目创建结束。
2、开始编写接口方法(包和类文件创建完毕的情况下)
在编写的类的上方需要添加"@WebService"
然后是方法编写的部分:
注意:::这里的方法是提供给人调用的接口,必须要是public修饰。
最后是接口的发布:
运行结果:
注意这里图片中的右上方的小框不能点掉了,不然接下来的测试是看不到结果的!!!!
下面是看发布的成功生成的wsdl文件 在浏览器中输入发布的地址加“?wsdl”就可以了(我的--(http://localhost:8080/service/function?wsdl)--)
2、用这里查看wsdl文件的地址自动生成客户端
首先依照上面的说的步骤新建另一个项目
鼠标点中这个新的项目,然后在项目上点击右键 New-->Other-->选择Web Service Client
直接点击下一步在Service definition中上面提到的地址复制到这里“http://localhost:8080/service/function?wsdl”直接点击Finish
生成的客户端代码:
这里将生成的test包删掉这里用不到
测试代码的编写
点击运行就可以等待结果了。(这里等待结果一般时间都会很长)
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命令启动
启动成功
在浏览器地址栏中输入如下的URL: http://localhost:8080/axis2/
好了!环境配置好了。接下来需要创建一个java项目(本人创建的是JavaWeb项目),将下载的axis2-1..6.4-bin.zip 解压,将相应的jar包放到我们项目的WEB-INF/lib文件夹下
lib文件夹下
接下来在我们创建的web项目中需要做把配置项目文件建一下:
看图建文件“/WebContent/WEB-INF/services/conf/META-INF/services.xml”
(--在WEB-INF下创建services文件夹然后创建------conf----META-INF----services.xml--)
当然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/*
现在在我们的项目中编写接口方法
编写完成启动项目:
路径的组成:tomcate里配置的ip和端口号 + 项目名 + web.xml里配置的
我的项目地址:http://localhost:8080/webservices/services/ThreeWS?wsdl
接下来生成客户端:可以按照初级教程的方法生成客户端
编写测试类:
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的环境可以在Axis1.4 中使用。
先看我的开发中Axis项目的文件结构(在进行开发的时候需要将axis-bin-1_4.zip中的jar引入到项目中)
这里的只有两个核心类只有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;
}}
下面编写配置文件
先看一下文件结构
在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”):
下面按照上面的方法生成客户端,测试就可以了。两种版本不一样,不能互相访问,可能生成策略不一样。所以需要注意!