WebService简单案例
发布时间:2020-12-16 23:44:44 所属栏目:安全 来源:网络整理
导读:服务端代码 代码总览 DBConnection.java package com.itlwc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBConnection {private static Connection conn;private String user = "sa";private Stri
服务端代码代码总览 DBConnection.java package com.itlwc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConnection { private static Connection conn; private String user = "sa"; private String password = "sa"; private String className = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; private String url = "jdbc:microsoft:sqlserver:" + "//localhost:1433;SelectMethod=Cursor;dataBaseName=itlwc"; private DBConnection() { try { Class.forName(this.className); conn = DriverManager.getConnection(url,user,password); System.out.println("连接数据库成功"); } catch (ClassNotFoundException e) { System.out.println("连接数据库失败"); } catch (SQLException e) { System.out.println("连接数据库失败"); } } @SuppressWarnings("static-access") public static Connection getConn() { return new DBConnection().conn; } // 测试数据库连接是否成功 public static void main(String[] args) { getConn(); } }Student.java package com.itlwc; public class Student { // 学号 private String id; // 姓名 private String name; // 性别 private String sex; // 年龄 private String age; public Student() { super(); } public Student(String id,String name,String sex,String age) { super(); this.id = id; this.name = name; this.sex = sex; this.age = age; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } @Override public String toString() { return "学号: " + id + "n姓名: " + name + "n性别: " + sex + "n年龄: " + age; } }IStudent.java package com.itlwc; public interface IStudent { // 增加学生 public boolean add(Student student); // 查找学生 public Student find(String id); }StudentImpl.java package com.itlwc; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class StudentImpl implements IStudent { private Connection conn = DBConnection.getConn(); // 增加 public boolean add(Student student) { String sql = "insert into student values('" + student.getId() + "','" + student.getName() + "','" + student.getSex() + "','" + student.getAge() + "')"; PreparedStatement ps = null; try { ps = conn.prepareStatement(sql); ps.executeUpdate(); return true; } catch (SQLException e) { e.printStackTrace(); return false; } } // 查询 public Student find(String id) { String sql = "select * from student where id='" + id + "'"; Student student = new Student(); PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(sql); rs = ps.executeQuery(); if (rs.next()) { student.setId(rs.getString(1)); student.setName(rs.getString(2)); student.setSex(rs.getString(3)); student.setAge(rs.getString(4)); } } catch (SQLException e) { e.printStackTrace(); } return student; } }web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app>services.xml <?xml version="1.0" encoding="UTF-8"?> <beans> <service xmlns="http://xfire.codehaus.org/config/1.0"> <name>Student</name> <serviceClass> com.itlwc.IStudent </serviceClass> <implementationClass> com.itlwc.StudentImpl </implementationClass> </service> </beans> http://localhost:8090/MyService/services/Student?wsdl <?xml version="1.0" encoding="UTF-8" ?> <wsdl:definitions targetNamespace="http://itlwc.com" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://itlwc.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <wsdl:types> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://itlwc.com"> <xsd:complexType name="Student"> <xsd:sequence> <xsd:element minOccurs="0" name="age" nillable="true" type="xsd:string" /> <xsd:element minOccurs="0" name="id" nillable="true" type="xsd:string" /> <xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string" /> <xsd:element minOccurs="0" name="sex" nillable="true" type="xsd:string" /> </xsd:sequence> </xsd:complexType> <xsd:element name="add"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="tns:Student" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="addResponse"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="out" type="xsd:boolean" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="find"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="findResponse"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:Student" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="addRequest"> <wsdl:part name="parameters" element="tns:add" /> </wsdl:message> <wsdl:message name="findResponse"> <wsdl:part name="parameters" element="tns:findResponse" /> </wsdl:message> <wsdl:message name="findRequest"> <wsdl:part name="parameters" element="tns:find" /> </wsdl:message> <wsdl:message name="addResponse"> <wsdl:part name="parameters" element="tns:addResponse" /> </wsdl:message> <wsdl:portType name="StudentPortType"> <wsdl:operation name="add"> <wsdl:input name="addRequest" message="tns:addRequest" /> <wsdl:output name="addResponse" message="tns:addResponse" /> </wsdl:operation> <wsdl:operation name="find"> <wsdl:input name="findRequest" message="tns:findRequest" /> <wsdl:output name="findResponse" message="tns:findResponse" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="StudentHttpBinding" type="tns:StudentPortType"> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="add"> <wsdlsoap:operation soapAction="" /> <wsdl:input name="addRequest"> <wsdlsoap:body use="literal" /> </wsdl:input> <wsdl:output name="addResponse"> <wsdlsoap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="find"> <wsdlsoap:operation soapAction="" /> <wsdl:input name="findRequest"> <wsdlsoap:body use="literal" /> </wsdl:input> <wsdl:output name="findResponse"> <wsdlsoap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="Student"> <wsdl:port name="StudentHttpPort" binding="tns:StudentHttpBinding"> <wsdlsoap:address location="http://localhost:8090/MyService/services/Student" /> </wsdl:port> </wsdl:service> </wsdl:definitions> 客户端代码代码总览 客户端中IStudent,Student两个java文件与服务端中IStudent,Student是一样的 Test.java package com.itlwc; import java.net.MalformedURLException; import org.codehaus.xfire.XFire; import org.codehaus.xfire.XFireFactory; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.service.binding.ObjectServiceFactory; public class Test { public static void main(String[] args) { //创建web服务的元数据 Service service = new ObjectServiceFactory().create(IStudent.class); //创建web服务代理 XFire xFire = XFireFactory.newInstance().getXFire(); XFireProxyFactory factory = new XFireProxyFactory(xFire); //服务地址(注意这个url地址后面不带?wsdl) String url = "http://192.168.0.161:8080/MyService/services/Student"; //生成web服务调用对象 try { IStudent is = (IStudent)factory.create(service,url); //增加方法 boolean b = is.add(new Student("1001","李文超","男","18")); if(b){ System.out.println("增加成功"); }else{ System.out.println("增加失败"); } //查询方法 Student student = is.find("1001"); System.out.println(student.toString()); } catch (MalformedURLException e) { e.printStackTrace(); } } } /* 打印结果 增加成功 学号: 1001 姓名: 李文超 性别: 男 年龄: 18 */ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读