WebService作业

1、创建zy.xml

<?xml version="1.0" encoding="UTF-8"?>
<zy>
	<person>
		<name>sqx</name>
		<age>21</age>
		<img>C:/Users/qiuxiang/Desktop/codeStyle.jpg</img>
	</person>
	<person>
		<name>tyh</name>
		<age>23</age>
		<img>C:/Users/qiuxiang/Desktop/c1.jpeg</img>
	</person>
	<person>
		<name>zzj</name>
		<age>20</age>
		<img>C:/Users/qiuxiang/Desktop/c2.jpeg</img>
	</person>
</zy>

  第一题:遍历目录,将图片存入数据库(数据库中包含大对象字段)

(1)创建数据库

(2)DButil.java(数据库连接)导入mysql连接jar包

public class DButil {

	private static String Driver = "com.mysql.jdbc.Driver";
	private static String url = "jdbc:mysql://数据库地址?useUnicode=true&characterEncoding=UTF-8";
	private static String userName = "用户名";
	private static String passWord = "密码";

	private static Connection conn = null;

	public DButil(){
		try {
			Class.forName(Driver);
			conn = DriverManager.getConnection(url, userName, passWord);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public Connection getconn() {
		return conn;
	}
	public void closeconn() throws SQLException{
		conn.close();
	}

}

 (3)XML2DB.java

public class XML2DB {
	/**
	* 将目录中的图片存入数据库
	*/
	public void ins(InputStream sq,File f){
		DButil db = new DButil();
		Connection conn = db.getconn();
		try {
			String sql = "insert into imf(img) values(?)";
			PreparedStatement st = conn.prepareStatement(sql);
			st.setBinaryStream(1, sq,(int)f.length());
			System.out.println(sq);
			st.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	public void readxml(){

	try{
		File f = new File("C:/Users/qiuxiang/Desktop/zy.xml");
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
	        DocumentBuilder db = dbf.newDocumentBuilder();
	        Document doc = db.parse(f);
	 NodeList List = doc.getElementsByTagName("person");
	 for (int i = 0; i < List.getLength(); i++) {
		String img = doc.getElementsByTagName("img").item(i).getFirstChild().getNodeValue();
		File fi = new File(img);
		FileInputStream fis = new FileInputStream(fi);
		ins(fis,fi);
		}
	}catch(Exception e){

	}
	}
	public static void main(String[] args) {
		XML2DB rx = new XML2DB();
		rx.readxml();
	}
}

  

第二题:遍历目录,将文件信息形成XML文件(包含文件名、创建时间、文件位置、文件大小)

(1)Data2XML.java(为了方便,这里直接读取zy.xml中的图片信息)

public class Data2XML {
	/**
	* 读取文件信息并生成xml
	*/
	List<String> filelist;
	public void readxml(){
		filelist = new ArrayList<>();
		try{
			File f = new File("C:/Users/qiuxiang/Desktop/zy.xml");
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		DocumentBuilder db = dbf.newDocumentBuilder();
		Document doc = db.parse(f);
		 NodeList List = doc.getElementsByTagName("person");
		 for (int i = 0; i < List.getLength(); i++) {
			String img = doc.getElementsByTagName("img").item(i).getFirstChild().getNodeValue();
			filelist.add(img);
			}
		}catch(Exception e){

		}
		}
	public void createXMLByDOM(File dest) {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        readxml();
        try {
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.newDocument();
            Element bookstore = document.createElement("fileinfo");
            for (int i = 0; i < filelist.size(); i++) {
			File f = new File(filelist.get(i));
            Element file = document.createElement("file");
            file.setAttribute("id", "1");
            Element fname = document.createElement("name");
            fname.setTextContent(f.getName());
            file.appendChild(fname);
            Element createtime = document.createElement("createtime");
            createtime.setTextContent(new Date(f.lastModified()).toString());
            file.appendChild(createtime);
            Element path = document.createElement("path");
            path.setTextContent(f.getPath());
            file.appendChild(path);
            Element size = document.createElement("size");
            size.setTextContent(f.length()/1024+"kb");
            file.appendChild(size);
            bookstore.appendChild(file);
			}
            document.appendChild(bookstore);

            TransformerFactory tff = TransformerFactory.newInstance();
            Transformer tf = tff.newTransformer();
            tf.setOutputProperty(OutputKeys.INDENT, "yes");
            tf.transform(new DOMSource(document), new StreamResult(dest));

        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (TransformerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

public static void main(String[] args) {
	Data2XML dx = new Data2XML();
	File f = new File("C:/Users/qiuxiang/Desktop/fi.xml");
	dx.createXMLByDOM(f);
}
}

  第三题:构建Webservices,并获取某XML文件中某元素内容(参数为文件名、字段名,返回元素内容)

(1)GetMsgService.java

@WebService
public class GetMsgService {
	/**
	*
	*/
	static List<String> list;
	@WebMethod(operationName="getinfo")
	public @WebResult(name="info")List<String> getinfo(@WebParam(name="filepath")String filepath,@WebParam(name="itemname")String itemname){
		list = new ArrayList<>();
		try{
			File f = new File(filepath);
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			DocumentBuilder db = dbf.newDocumentBuilder();
			Document doc = db.parse(f);
			NodeList List = doc.getElementsByTagName(itemname);
		 for (int i = 0; i < List.getLength(); i++) {
			 slist(List.item(i));
			}
		 for (int i = 0; i < list.size(); i++) {
			 System.out.println(list.get(i));
		}

		}catch(Exception e){

		}
		return list;
	}
	public static void slist(Node node){
        if(node.getNodeType()==node.TEXT_NODE){
        	node.getTextContent().replaceAll(" ", "");
        	if (!node.getTextContent().trim().equals("")) {
        		list.add(node.getTextContent());
			}
        }
        NodeList lists=node.getChildNodes();
        for(int i=0;i<lists.getLength();i++){
            Node child=lists.item(i);
            slist(child);
        }
    }
	public static void main(String[] args) {
		Endpoint.publish("http://localhost:8888/sqx/GetMsgService", new GetMsgService());
		System.out.println("start success");
	}
}

  

测试

1、在命令行中输入

wsimport -s D:\web\lanqiao\lanqiao\Webclient\\src -p com.itim.webservice -keep http://localhost:8888/sqx/GetMsgService?wsdl

其中D:\web\lanqiao\lanqiao\Webclient\\src 为输出路径 com.itim.webservice为包名

刷新后可见

创建test.java

public class test {
	/**
	*
	*/
	public static void main(String[] args) {
		GetMsgServiceService gmss = new GetMsgServiceService();
		GetMsgService gi = gmss.getGetMsgServicePort();
		List<String> gif = gi.getinfo("C:/Users/qiuxiang/Desktop/zy.xml", "person");
		for (int i = 0; i < gif.size(); i++) {
			System.out.println(gif.get(i));
		}
	}
}

 控制台输出结果

时间: 2024-12-22 07:32:44

WebService作业的相关文章

PB11.5创建及调用WebService

我今天做了这个“PB创建及调用WebService”的小作业,下面我来分享一下我的整个实践过程以及我遇到的问题,希望对大家有所帮助,这个小作业是分以下三部来完成的: 一.构建WebService ①创建Workspace,Workspace命名为:Your_WebService ②建立.NET Web Service Target,这一步只需要一路Next即可 最后生产的项目文件中至少包含三项,一个webservice2应用,一个p_webservice2部署,一个n_webservice2用户

WebService开发

一.什么是WebService: 简单通俗来说,就是企业之间.网站之间通过Internet来访问并使用在线服务,一些数据,由于安全性问题,不能提供数据库给其他单位使用,这时候可以使   用WebService服务提供. 二.创建WebService 创建WebService之后,我们就可以在文件里写返回数据的方法了. 三.返回数据的四种形式 笔者水平有限,只列出这四种数据的返回形式: (1)直接返回DataSet对象(2)返回DataSet对象用Binary序列化后的字节数组(3)返回DataS

简述WebS简述WebService与.NET Remoting的区别及适应场合

为了能清楚地描述Web Service 和Remoting之间的区别,我打算从他们的体系结构上来说起: Web Service大体上分为5个层次: 1. Http传输信道 2. Xml的数据格式 3. SOAP封装格式 4. WSDL的描述方式 5. UDDI 总体上来讲,.Net 下的 Web Service结构比较简单,也比较容易理解和应用: 一般来讲在.Net结构下的WebService应用都是基于.Net framework以及IIS的架构之下,所以部署(Dispose)起来相对比较容易

一段采访——团队作业 #2

团队作业 #2 要求我们找到一个以前的队伍就团队项目中的一些问题采访一下. 我们有幸请到了上一届的孙思权学长来协助我们完成这段采访. 简单介绍 孙思权学长所在的队伍叫做——ourteam,一个简单粗暴的团队名称! 学长他们的团队命题是——学霸网站,顾名思义,就是用于辅助北航同学学习的网站. Q & A Q:当时的项目有多少用户,给用户多少价值? 现在还有人用吗? A:当时大概有150-200的用户.给用户应该说是没有什么价值,因为没人真正去用.当然,现在也没有人在用了. Q:这个项目能否给我们团

Oozie coordinator 作业自定义的配置的一些方法

Oozie的coordinator有啥用? The Oozie Coordinator system allows the user to define and execute recurrent and interdependent workflow jobs (data application pipelines). 说白了就是可以把各个 workflow作业组织起来.比如,A作业执行完成之后,会有输出,该输出触发B作业的执行.那么 A B 这两个workflow作业就可以通过一个coord

C# Windows service 定时发邮件功能 (用到webService)

参考地址: http://www.cnblogs.com/zhenhong/p/3298901.html   功能:实现一个定时任务,每周自动发送邮件给审批者 思路: 1.    先建立WebService,把发送邮件的方法写在WS中. 2.    建立Service项目,引用WS,然后调用WS中发送邮件的方法. 3.    把Service生成.exe程序 4.    在Windows Service中建立定时任务,定时每周执行.exe程序.   一.      新建 WebService,并

netBeans中从实体创建Restful webservice工程

分布式系统和移动计算...... 这学期上的课,名字听起来是不是很霸气? 然而 其实就是 restful 和 安卓...... 汗....... 用的IDE还是netBeans, 第一次听说有这个IDE.上课课件都是英文, 蛋疼,还是在博客上总结下吧. 注: 我用的netBeans版本是8.2 需要jdk8以上才行.用里面自带的classfish服务器,需要4.1版本,因为老师说4.1.1 版本有BUG netBeans中创建webservice工程步骤: 1. 创建java web工程 其余都

简述WebService与.NET Remoting的区别及适应场合 WCF

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhoufoxcn.blog.51cto.com/792419/166990 为了能清楚地描述Web Service 和Remoting之间的区别,我打算从他们的体系结构上来说起: Web Service大体上分为5个层次: 1. Http传输信道 2. XML的数据格式 3. SOAP封装格式 4. WSDL的描述方式 5. UDDI 总体上来讲,.NET 下的 Web Ser

c# WebService SOAP及Rest调用

SOAP及Rest的调用区别参照如下: REST似乎在一夜间兴起了,这可能引起一些争议,反对者可以说REST是WEB诞生之始甚而是HTTP出现之日就相伴而生的原则.但是毋庸置疑的事实是,在Google和Yahoo等网络巨头发布的相同功能的Web Service API中,REST无疑受到更多的青睐,因此是不是可以这样说:RPC在一夜之间衰落了? 在一篇作业的小文章里讨论整套RPC的原理,无疑太过庞大了,况且RPC在Web Service领域的应用也无过XML-RPC以及由此延伸的SOAP而已.在