`
ducklsl
  • 浏览: 24798 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

使用AXIS1.4发布WebService

阅读更多
选择使用AXIS发布WebService,到apache官网上进行下载相关AXIS的相关包
下载地址:http://axis.apache.org/axis/java/releases.html
1)新建一个Web项目,然后在把下载下来的示例应用中的web.xml和lib目录拷贝进项目中,web.xml文件的代码如下:
<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>/servlet/AxisServlet</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>*.jws</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>/services/*</url-pattern>
	</servlet-mapping>
2)新建一个类,查询出相应的库存信息
GoodsinfoSearch类:
public class GoodsinfoSearch {
	private StockDao sd = new StockDao();

	public String queryBacodegoodsinfo(String userName, String sort,
			String page, String pageSize) {
		String message = sd.lastStringData(userName, sort, page, pageSize);
		return message;
	}
}
StockDao类:
public class StockDao {
	private static final String URL = "jdbc:mysql://localhost:3306/stock?useUnicode=true&amp;characterEncoding=gb2312";
	private static final String DRIVER = "com.mysql.jdbc.Driver";
	private static final String USERNAME = "root";
	private static final String PASSWORD = "";
	private int pagesize = 20;
	private int currentpage = 1;
	private Connection conn = null;
	private PreparedStatement pstmt = null;
	private ResultSet res = null;
	static {
		try {
			Class.forName(DRIVER);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	// 数据信息
	public List<Barcodegoods> getAllBarcodegoods() {
		String sql = "select * from eas_barcodegoods";
		List<Barcodegoods> bgs = new ArrayList<Barcodegoods>();
		try {
			conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
			pstmt = conn.prepareStatement(sql);
			res = pstmt.executeQuery();
			Barcodegoods bg = null;
			while (res.next()) {
				bg = new Barcodegoods();
				bg.setBarcode(res.getString("barcode"));
				bg.setColor(res.getString("color"));
				bg.setColorid(res.getString("colorid"));
				bg.setGoods_no(res.getString("goods_no"));
				bg.setSize(res.getString("size"));
				bgs.add(bg);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return bgs;
	}
	// 分页查询
	public List<Barcodegoods> queryBarcodegoodsByPage(String sort,
			String page, String pageSize) {
		Integer current;
		Integer pageCount;
		if (page != null && !"".equals(page)) {
			current = Integer.valueOf(page);
		} else {
			current = currentpage;
		}
		if (pageSize != null && !"".equals(pageSize)) {
			pageCount = Integer.valueOf(pageSize);
		} else {
			pageCount = pagesize;
		}
		StringBuffer buffer = new StringBuffer();
		buffer.append("select * from eas_barcodegoods order by barcode ");
		if ("0".equals(sort)) {
			buffer.append("asc ");
		} else if ("1".equals(sort)) {
			buffer.append("desc ");
		}
		buffer.append("limit ");
		buffer.append((current - 1) * pageCount);
		buffer.append(",");
		buffer.append(pageCount);
		String sql = buffer.toString();
		List<Barcodegoods> bgs = new ArrayList<Barcodegoods>();
		try {
			conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
			pstmt = conn.prepareStatement(sql);
			res = pstmt.executeQuery();
			Barcodegoods bg = null;
			while (res.next()) {
				bg = new Barcodegoods();
				bg.setBarcode(res.getString("barcode"));
				bg.setColor(res.getString("color"));
				bg.setColorid(res.getString("colorid"));
				bg.setGoods_no(res.getString("goods_no"));
				bg.setSize(res.getString("size"));
				bgs.add(bg);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return bgs;
	}
	// 分页查询
	public List<Barcodegoods> queryBarcodegoodsByPage(String page,
			String pageSize) {
		Integer current;//当前页码
		Integer pageCount;//每页条数
		if (page != null && !"".equals(page)) {
			current = Integer.valueOf(page);
		} else {
			current = currentpage;
		}
		if (pageSize != null && !"".equals(pageSize)) {
			pageCount = Integer.valueOf(pageSize);
		} else {
			pageCount = pagesize;
		}
		StringBuffer buffer = new StringBuffer();
		buffer.append("select * from eas_barcodegoods ");
		buffer.append("limit ");
		buffer.append((current - 1) * pageCount);
		buffer.append(",");
		buffer.append(pageCount);
		String sql = buffer.toString();
		List<Barcodegoods> bgs = new ArrayList<Barcodegoods>();
		try {
			conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
			pstmt = conn.prepareStatement(sql);
			res = pstmt.executeQuery();
			Barcodegoods bg = null;
			while (res.next()) {
				bg = new Barcodegoods();
				bg.setBarcode(res.getString("barcode"));
				bg.setColorid(res.getString("colorid"));
				bg.setGoods_no(res.getString("goods_no"));
				bg.setSize(res.getString("size"));
				bgs.add(bg);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return bgs;
	}
	// 检查用户
	public boolean checkUser(String userName) {
		String sql = "select * from e_userinfo where name='" + userName + "'";
		boolean flag = false;
		try {
			conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
			pstmt = conn.prepareStatement(sql);
			res = pstmt.executeQuery();
			if (res.next()) {
				flag = true;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return flag;
	}
	// 返回数据信息
	public String data2String(List<Barcodegoods> bgs, String pageSize,
			String currentPage, Integer allCount) {
		StringBuffer result = new StringBuffer();
		result.append("<resultdetail>");
		if ((bgs != null && bgs.size() > 0)
				&& (pageSize != null && !"".equals(pageSize))
				&& (currentPage != null && !"".equals(currentPage))) {
			Integer size = Integer.valueOf(pageSize);// 每页条数
			Integer all = ((allCount + size - 1) / size);// 总页码
			result.append("<totalcount>");
			result.append(bgs.size());
			result.append("</totalcount>");
			result.append("<allpagenum>");
			result.append(all.toString());
			result.append("</allpagenum>");
			result.append("<nowpagenum>");
			result.append(currentPage);
			result.append("</nowpagenum>");
			result.append("<bglist>");
			Barcodegoods bg = null;
			for (int i = 0; i < bgs.size(); i++) {
				bg = bgs.get(i);
				result.append("<bg>");
				result.append("<barcode>");
				result.append(bg.getBarcode());
				result.append("</barcode>");
				result.append("<color>");
				result.append(bg.getColor());
				result.append("</color>");
				result.append("<colorid>");
				result.append(bg.getColorid());
				result.append("</colorid>");
				result.append("<goods_no>");
				result.append(bg.getGoods_no());
				result.append("</goods_no>");
				result.append("<size>");
				result.append(bg.getSize());
				result.append("</size>");
				result.append("</bg>");
			}
			result.append("</bglist>");
		}
		result.append("</resultdetail>");
		return result.toString();
	}
	public String setResultMessage(String code, String resultMessage) {
		StringBuffer message = new StringBuffer();
		message.append("<resultcode>");
		message.append(code);
		message.append("</resultcode>");
		message.append("<resultmessage>");
		message.append(resultMessage);
		message.append("</resultmessage>");
		return message.toString();
	}
	// 获得最后的数据
	public String lastStringData(String userName, String sort, String page,String pageSize) {
		List<Barcodegoods> bgs = queryBarcodegoodsByPage(sort, page, pageSize);// 获取数据
		Integer allCount = getAllBarcodegoods().size();
		boolean flag = checkUser(userName);
		String message;
		String data;
		if (flag) {
			message = setResultMessage("0", "验证用户成功,获取信息成功");
			data = data2String(bgs, pageSize, page, allCount);
		} else {
			message = setResultMessage("-1", "验证用户失败,获取信息失败");
			data = data2String(null, null, null, null);
		}
		String result = message + data;
		return result;
	}
}
3)在WEB-INF目录下新建server-config.wsdd文件,配置如下:
<?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">     
  <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>     
  <service name="goodsservice" provider="java:RPC">  
  <parameter name="className" value="changluo.bean.GoodsinfoSearch"></parameter>  
  <parameter name="allowedMethods" value="*"></parameter>
  </service>  
  <transport name="http">     
    <requestFlow>     
        <handler type="URLMapper"/>     
    </requestFlow>     
  </transport>     
</deployment>
启动tomcat进行发布,在浏览器地址中输入:http://localhost:8083/webdemo/services/goodsservice看看是否发布成功,如果出现WebService的列表,就表示发布成功叻!
访问WebService,编写客户端进行测试
public static void main(String[] args) throws Exception {
		WebTest wt = new WebTest();
		wt.test();
	}
	public String test() throws Exception {
		String endpoint = "http://localhost:8083/webdemo/services/goodsservice?wsdl";
		Service service = new Service();
		Call call = (Call) service.createCall();
		URL url = new URL(endpoint);
		call.setTargetEndpointAddress(url);
		call.setOperationName("queryBacodegoodsinfo");
		String result1 = (String) call.invoke(new Object[]{"admin","0","3","5"});
		System.out.println(result1);
		return null;
	}
输出结果:
<resultcode>0</resultcode><resultmessage>验证用户成功,获取信息成功</resultmessage><resultdetail><totalcount>5</totalcount><allpagenum>927</allpagenum><nowpagenum>3</nowpagenum><bglist><bg><barcode>B113280002000</barcode><color>黑色</color><colorid>0020</colorid><goods_no>B113280</goods_no><size>00</size></bg><bg><barcode>B113310002000</barcode><color>黑色</color><colorid>0020</colorid><goods_no>B113310</goods_no><size>00</size></bg><bg><barcode>B113330002000</barcode><color>黑色</color><colorid>0020</colorid><goods_no>B113330</goods_no><size>00</size></bg><bg><barcode>B113330002200</barcode><color>浅灰</color><colorid>0022</colorid><goods_no>B113330</goods_no><size>00</size></bg><bg><barcode>B113330006000</barcode><color>大红</color><colorid>0060</colorid><goods_no>B113330</goods_no><size>00</size></bg></bglist></resultdetail>

此结果可以通过JDOM进行解析,解析伪码如下:
public static void parsexml(String xmldoc){
		// 创建一个新的字符串
		StringReader read = new StringReader(xmlDoc);
		// 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
		InputSource source = new InputSource(read);
		// 创建一个新的SAXBuilder
		SAXBuilder sb = new SAXBuilder();
		try {
			// 通过输入源构造一个Document
			Document doc = sb.build(source);
			// 取的根元素
			Element root = doc.getRootElement();
			// System.out.println(root.getName());//输出根元素的名称(测试)
			String code = root.getChildText("resultcode");
			if (code.equals("0")) {
				Element resultdetail = root.getChild("resultdetail");// 正常返回信息
				List odlist = resultdetail.getChildren("bglist");
				for(int i =0;i<odlist.size();i++){
					//进行订单解析工作
				}
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}
由于公司对此业务的要求并不高,所以此WebService仅仅是入门的配置案例,没有设计一些高级特性,如Handler和Chain以及像传递复杂对象和文件等等功能的使用。
分享到:
评论

相关推荐

    axis1.4及webService开发教程

    本教程将详细讲解如何使用Axis1.4进行Web服务的开发,包括创建服务端和客户端。 首先,我们需要了解Web服务的基本概念。Web服务是通过SOAP(Simple Object Access Protocol)协议交换数据的平台独立、语言独立的...

    手写Axis1.4发布WebService以及客户端调用

    标题中的“手写Axis1.4发布WebService以及客户端调用”指的是使用Apache Axis1.4框架来创建和消费Web服务的过程。Apache Axis是用于构建Web服务的一个开源工具,它允许开发者将Java类转换为Web服务,并且提供客户端...

    springboot+axis1.4

    3. **创建WebService**:在Spring Boot应用中,你可以通过Axis1.4创建一个WebService。首先,定义一个Java类,包含你想要公开的方法。然后,使用Axis的工具生成服务端点接口和服务类。 4. **配置Spring Boot**:...

    axis1.4发布webservice接口步骤(java).docx

    本文档旨在详细介绍如何使用Axis 1.4框架在Java环境下发布WebService接口。Axis是一个由Apache组织开发的开源项目,它提供了用于实现基于SOAP协议的Web服务的工具和库。本文将通过具体的步骤演示如何利用Eclipse集成...

    springboot使用axis1.4的demo

    在本文中,我们将深入探讨如何在Spring Boot项目中集成并使用Axis1.4来发布Web服务。Spring Boot以其简化配置和快速开发能力而受到广泛欢迎,而Axis1.4是Apache软件基金会的一个开源项目,主要用于生成和消费SOAP ...

    手把手教你用axis1.4搭建webservice

    标题中的“手把手教你用axis1.4搭建webservice”是指一篇教程,旨在指导读者如何使用Axis1.4这个开源工具来创建和部署Web服务。Axis是Apache软件基金会的一个项目,它提供了一种简单的方式来实现Java到SOAP(Simple ...

    AXIS1.4webservice服务端和客户端例子

    在这个"AXIS1.4 WebService服务端和客户端例子"中,我们将深入探讨如何使用AXIS1.4搭建服务端和客户端,以及如何进行远程调用。 首先,让我们从服务端开始。服务端是提供Web服务的系统,它可以接收客户端的请求并...

    axis1.4 部署webservice说明

    标题和描述提到的知识点主要集中在如何使用Axis1.4来部署Web服务以及相关的文件生成过程。 1. **Axis1.4介绍**: Axis1.4是Axis版本之一,它提供了一套工具和服务,使得开发者能够方便地将Java类转换为Web服务,...

    java客户端调用webservice所调用的axis1.4包和方法调用

    本方法是用axis1.4技术,实现java客户端调用webservice。已经可实现过可行的,如果不行可加我QQ号302633进行详细解析。

    [原创]使用Axis1.4开发WebService

    ### 使用Axis 1.4开发WebService:关键技术与实践 #### 一、Axis 1.4 简介 Axis是一个开放源代码的Web服务引擎,它由Apache软件基金会开发和维护,支持SOAP协议,用于创建和部署Web服务。Axis 1.4版本是其稳定且...

    axis1.4开发webservice详细实例

    在本文中,我们将深入探讨如何使用Axis1.4版本来开发Web服务,这是一个基于Java的开源工具,专门用于创建和部署Web服务。我们将通过一个详细实例来阐述整个过程,包括Web服务的发布和客户端调用。 一、 Axis1.4简介...

    Axis1.4生成webservice客户端 Axis1.4包及使用方法

    java org.apache.axis.wsdl.WSDL2Java -u http://xxxxxx?wsdl -p com.webservice.wsdl -t -u 要访问的webservice的地址标准的wsdl文件 -p 生成java文件的包名 -t 生成的java文件中包含junit的测试代码。 详见...

    axis1.4开发webservice

    标题中的“axis1.4开发webservice”指的是使用Apache Axis1.4框架创建Web服务的过程。Apache Axis是Java中广泛使用的开源工具,用于实现SOAP(简单对象访问协议)Web服务。Axis1.4是该工具的一个版本,它支持Java-to...

    eclipse使用axis1.4发布联通vac的webservice服务代码

    当我们谈论“eclipse使用axis1.4发布联通vac的webservice服务代码”时,这里涉及到几个关键概念和技术,让我们一一深入探讨。 1. **Eclipse**:Eclipse是一个开源的集成开发环境(IDE),支持多种编程语言,包括...

    Springboot集成axis1.4的demo

    以下将详细讲解如何在Spring Boot应用中集成Axis1.4以及使用wsdd文件发布Web服务。 首先,了解 Axis1.4:Axis 是一个开源的Java Web服务框架,它允许开发者快速地创建和部署Web服务。Axis1.4是该框架的一个较老版本...

    【java项目整合Axis1.4webservice搭建实例】服务端代码

    Axis1.4是Apache软件基金会开发的一个Java Web服务栈,它基于SOAP(简单对象访问协议)和WSDL(Web服务描述语言),使得开发者能够轻松地创建、部署和使用Web服务。Axis1.4支持JAX-RPC(Java API for XML-RPC)规范...

    【java项目整合Axis1.4webservice搭建实例】客户端代码

    在Java开发中, Axis1.4 是一个广泛使用的开源框架,用于构建和部署Web服务。本文将深入探讨如何使用Axis1.4与Java项目整合,搭建Web服务客户端,并通过具体的客户端代码实例进行详解。 首先,我们需要理解Web服务...

    webservice axis1.4服务实例

    通过对这些文件的研究和实践,你可以深入理解如何使用Axis1.4搭建和使用Web服务。 总结起来,Apache Axis1.4是一个强大的工具,可以帮助开发者轻松创建、部署和使用Web服务。通过学习和掌握Axis1.4,你可以更好地...

    webservice axis1.4 开发资料

    通过学习和实践相关的开发指南,掌握使用jar包,创建、发布和调用Web服务,以及理解其工作原理,可以有效地利用Axis1.4进行Web服务开发。然而,随着技术的演进,开发者也应关注更新的框架,以便利用更先进的功能和更...

    WebService axis1.4接口服务序列/反序列复杂项目实例

    在这个"WebService Axis1.4接口服务序列/反序列复杂项目实例"中,我们将深入探讨如何在 Axis1.4 中处理复杂的参数、自定义实体对象的序列化与反序列化,以及客户端的复杂调用。 首先,让我们理解序列化和反序列化的...

Global site tag (gtag.js) - Google Analytics